summaryrefslogtreecommitdiff
path: root/Build/source/libs/zziplib
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
commitad547a6b5986815fda458221149728d9d9ab1d87 (patch)
tree16296910eb3eca724371474ea9aea3994dc69614 /Build/source/libs/zziplib
parent947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff)
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/zziplib')
-rw-r--r--Build/source/libs/zziplib/ChangeLog114
-rw-r--r--Build/source/libs/zziplib/Makefile.am72
-rw-r--r--Build/source/libs/zziplib/Makefile.in1465
-rw-r--r--Build/source/libs/zziplib/README17
-rw-r--r--Build/source/libs/zziplib/TLpatches/ChangeLog75
-rw-r--r--Build/source/libs/zziplib/TLpatches/TL-Changes26
-rw-r--r--Build/source/libs/zziplib/TLpatches/patch-01-header11
-rw-r--r--Build/source/libs/zziplib/TLpatches/patch-05-no-const12
-rw-r--r--Build/source/libs/zziplib/ac/withenable.ac7
-rw-r--r--Build/source/libs/zziplib/ac/zziplib.ac9
-rw-r--r--Build/source/libs/zziplib/aclocal.m41175
-rw-r--r--Build/source/libs/zziplib/config.h.in201
-rwxr-xr-xBuild/source/libs/zziplib/configure8479
-rw-r--r--Build/source/libs/zziplib/configure.ac95
-rw-r--r--Build/source/libs/zziplib/include/zzip/Makefile.am26
-rw-r--r--Build/source/libs/zziplib/include/zzip/Makefile.in455
-rw-r--r--Build/source/libs/zziplib/m4/ac_sys_largefile_sensitive.m446
-rw-r--r--Build/source/libs/zziplib/m4/ax_prefix_config_h.m4181
-rw-r--r--Build/source/libs/zziplib/m4/zziplib-aligned-access.m443
-rw-r--r--Build/source/libs/zziplib/version.ac11
-rw-r--r--Build/source/libs/zziplib/zziplib-src/CMakeLists.txt47
-rw-r--r--Build/source/libs/zziplib/zziplib-src/CMakeScripts/JoinPaths.cmake23
-rw-r--r--Build/source/libs/zziplib/zziplib-src/COPYING.LIB481
-rw-r--r--Build/source/libs/zziplib/zziplib-src/ChangeLog1636
-rw-r--r--Build/source/libs/zziplib/zziplib-src/GNUmakefile45
-rw-r--r--Build/source/libs/zziplib/zziplib-src/Makefile.am181
-rw-r--r--Build/source/libs/zziplib/zziplib-src/Makefile.in1051
-rw-r--r--Build/source/libs/zziplib/zziplib-src/README48
-rw-r--r--Build/source/libs/zziplib/zziplib-src/README.MD49
-rw-r--r--Build/source/libs/zziplib/zziplib-src/SDL/CMakeLists.txt67
-rw-r--r--Build/source/libs/zziplib/zziplib-src/SDL/Makefile.am57
-rw-r--r--Build/source/libs/zziplib/zziplib-src/SDL/Makefile.in775
-rw-r--r--Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzcat.c63
-rw-r--r--Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.c62
-rw-r--r--Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.h36
-rw-r--r--Build/source/libs/zziplib/zziplib-src/TODO111
-rw-r--r--Build/source/libs/zziplib/zziplib-src/azure-pipelines.yml42
-rw-r--r--Build/source/libs/zziplib/zziplib-src/azure-test-results.md7
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/CMakeLists.txt71
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/Makefile.am46
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/Makefile.in899
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzip-mem.c414
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzip-states.h24
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzip.c194
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-big.c141
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mem.c150
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mix.c135
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.c125
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.h10
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-big.c84
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mem.c139
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mix.c145
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.c142
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.h10
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c109
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/zzcat.c74
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/zzdir.c82
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/zzip.c58
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/zziplib.m4105
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/zzipmake-zip.c77
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/zzipmake-zip.h9
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/zziptest.c159
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/zzobfuscated.c155
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/zzxorcat.c113
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/zzxorcopy.c108
-rw-r--r--Build/source/libs/zziplib/zziplib-src/bins/zzxordir.c122
-rw-r--r--Build/source/libs/zziplib/zziplib-src/config.h.in194
-rwxr-xr-xBuild/source/libs/zziplib/zziplib-src/configure19343
-rw-r--r--Build/source/libs/zziplib/zziplib-src/configure.ac399
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/64on32.htm195
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/CMakeLists.txt180
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/COPYING.LIB481
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/COPYING.MPL567
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/COPYING.ZLIB30
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/Makefile.am312
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/Makefile.in811
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/README.MSVC6137
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/README.SDL134
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/body.htm108
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/configs.htm164
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/copying.htm113
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown-1.py250
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown.py197
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/dbk2man.py460
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/developer.htm75
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-192.pngbin0 -> 10624 bytes
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-64.pngbin0 -> 3539 bytes
-rwxr-xr-xBuild/source/libs/zziplib/zziplib-src/docs/dir2index.py119
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/download.htm56
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/faq.htm182
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/fseeko.htm193
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/functions.htm28
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/future.htm80
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/history.htm92
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/make-dbk.pl118
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/make-doc.pl580
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/make-doc.py1026
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/makedocs.py325
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/memdisk.htm116
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/mksite.pl2634
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/mksite.sh2355
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/mmapped.htm226
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/notes.htm57
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/referentials.htm68
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/sdocbook.css679
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/sfx-make.htm167
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/site.htm68
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zip-php.htm63
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-api.htm30
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-basics.htm163
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-crypt.htm92
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-cryptoid.htm106
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-extio.htm188
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-extras.htm164
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-file.htm183
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-index.htm55
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-parse.htm219
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-sdl-rwops.htm90
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-xor.htm77
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzip-zip.htm146
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/__init__.py0
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/commentmarkup.py85
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/dbk2htm.py25
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/docbookdocument.py96
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionheader.py96
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionlisthtmlpage.py140
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionlistreference.py272
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionprototype.py60
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/htm2dbk.py169
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/htmldocument.py118
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/match.py111
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/options.py31
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/textfile.py49
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/textfileheader.py49
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zziplib-manpages.dbk12
-rw-r--r--Build/source/libs/zziplib/zziplib-src/docs/zziplib-master.dbk59
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ac_compile_check_sizeof.m480
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ac_set_default_paths_system.m4106
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ac_sys_largefile_sensitive.m446
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/acx_restrict.m438
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_gcc_option.m4193
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_no_writable_strings.m4145
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_strict_prototypes.m4136
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_warn_all.m4121
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_check_aligned_access_required.m464
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_check_enable_debug.m4124
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_configure_args.m436
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_create_pkgconfig_info.m4319
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir.m4248
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir_uname.m4164
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_expand_prefix.m435
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_maintainer_mode_auto_silent.m440
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_not_enable_frame_pointer.m437
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_pax_tar.m4134
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_prefix_config_h.m4183
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_set_version_info.m4180
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_spec_file.m4100
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_spec_package_version.m4229
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_warning_default_aclocaldir.m4115
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ax_warning_default_pkgconfig.m4129
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/libtool.m48368
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ltoptions.m4437
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ltsugar.m4124
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/ltversion.m423
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/lt~obsolete.m499
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_on_darwin_zsh_overquoting.m438
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_sys_lib_search_path_spec.m441
-rw-r--r--Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_to_add_host_cc.m466
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc6/zzcat.dsp98
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc6/zzdir.dsp98
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc6/zzip.dsp183
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc6/zziplib.dsp172
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc6/zziplib.dsw116
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc6/zziptest.dsp98
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc6/zzipwrap.dsp106
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc6/zzobfuscated.dsp98
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/README.TXT31
-rwxr-xr-xBuild/source/libs/zziplib/zziplib-src/msvc7/pkzip.exebin0 -> 42166 bytes
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/test.zipbin0 -> 545 bytes
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/test1.zipbin0 -> 1183 bytes
-rwxr-xr-xBuild/source/libs/zziplib/zziplib-src/msvc7/zip.exebin0 -> 135168 bytes
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzcat.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzcat.vcproj202
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzdir.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzdir.vcproj202
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzip.sln69
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzip.vcproj166
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zziplib.sln19
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zziplib.vcproj260
-rwxr-xr-xBuild/source/libs/zziplib/zziplib-src/msvc7/zzipself.bat18
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.txt9
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.vcproj202
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzipsetstub.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzipsetstub.vcproj201
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zziptest.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zziptest.vcproj204
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzobfuscated.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc7/zzobfuscated.vcproj202
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/README.TXT61
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/test.zipbin0 -> 545 bytes
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/test1.zipbin0 -> 1183 bytes
-rwxr-xr-xBuild/source/libs/zziplib/zziplib-src/msvc8/zip.exebin0 -> 135168 bytes
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzcat.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzcat.vcproj213
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzdir.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzdir.vcproj210
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzip.sln81
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzip.vcproj166
-rwxr-xr-xBuild/source/libs/zziplib/zziplib-src/msvc8/zzipfseeko.vcproj209
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zziplib.sln19
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zziplib.vcproj276
-rwxr-xr-xBuild/source/libs/zziplib/zziplib-src/msvc8/zzipmmapped.vcproj227
-rwxr-xr-xBuild/source/libs/zziplib/zziplib-src/msvc8/zzipself.bat18
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.txt9
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.vcproj210
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzipsetstub.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzipsetstub.vcproj209
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zziptest.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zziptest.vcproj208
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzobfuscated.sln21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/msvc8/zzobfuscated.vcproj210
-rw-r--r--Build/source/libs/zziplib/zziplib-src/ports/symbian-S60/zziplib-symbian.zipbin0 -> 3154 bytes
-rw-r--r--Build/source/libs/zziplib/zziplib-src/test/CMakeLists.txt82
-rw-r--r--Build/source/libs/zziplib/zziplib-src/test/Makefile.am89
-rw-r--r--Build/source/libs/zziplib/zziplib-src/test/Makefile.in735
-rw-r--r--Build/source/libs/zziplib/zziplib-src/test/README47
-rw-r--r--Build/source/libs/zziplib/zziplib-src/test/test.zipbin0 -> 1361 bytes
-rw-r--r--Build/source/libs/zziplib/zziplib-src/test/zzipself.c87
-rw-r--r--Build/source/libs/zziplib/zziplib-src/test/zzipsetstub.c61
-rw-r--r--Build/source/libs/zziplib/zziplib-src/test/zziptests.py3602
-rwxr-xr-xBuild/source/libs/zziplib/zziplib-src/testbuilds.py1640
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-build.dockerfile26
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-docs.dockerfile25
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-sdl2.dockerfile26
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-build.dockerfile22
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-destdir-sdl2.dockerfile22
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-docs.dockerfile21
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-sdl2.dockerfile22
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-am-build.dockerfile26
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-am-sdl2.dockerfile31
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-build.dockerfile22
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-destdir-sdl2.dockerfile26
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-sdl2.dockerfile26
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/opensuse15-build.dockerfile22
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/opensuse15-sdl2.dockerfile24
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-32bit.dockerfile23
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-azure.dockerfile28
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-build.dockerfile23
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-sdl2.dockerfile24
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu18-build.dockerfile23
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/windows-shared-x64.dockerfile29
-rw-r--r--Build/source/libs/zziplib/zziplib-src/testbuilds/windows-static-x64.dockerfile29
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/CMakeLists.txt343
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/Makefile.am200
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/Makefile.in983
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/__debug.h96
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/__dirent.h388
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/__errno.h11
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/__fnmatch.h49
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/__hints.h195
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/__mkdir.h12
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/__mmap.h100
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/__string.h82
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/_config.h.cmake165
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/_msvc.sed26
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/autoconf.h45
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/conf.h259
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/dir.c333
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/err.c163
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/fetch.c121
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/fetch.h374
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/file.c1180
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/file.h76
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/format.h229
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/fseeko.c873
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/fseeko.h154
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/info.c151
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/info.h20
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/lib.h86
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/memdisk.c605
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/memdisk.h179
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/mmapped.c768
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/mmapped.h133
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/plugin.c89
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/plugin.h94
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/stat.c131
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/stdint.h56
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/types.h52
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/write.c482
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/write.h59
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/zip.c896
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/zzip.h263
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzip/zzip32.h46
-rwxr-xr-xBuild/source/libs/zziplib/zziplib-src/zzip/zziplib.wpj103
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzipback.sed19
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zziplib.spec158
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzipwrap/CMakeLists.txt97
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.am51
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.in817
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.c223
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.h36
-rw-r--r--Build/source/libs/zziplib/zziplib-src/zzipwrap/zzipwrap.c102
-rwxr-xr-xBuild/source/libs/zziplib/zziplib.test14
305 files changed, 94048 insertions, 0 deletions
diff --git a/Build/source/libs/zziplib/ChangeLog b/Build/source/libs/zziplib/ChangeLog
new file mode 100644
index 00000000000..ec749cc2e50
--- /dev/null
+++ b/Build/source/libs/zziplib/ChangeLog
@@ -0,0 +1,114 @@
+2020-04-23 Luigi Scarso <luigi.scarso@gmail.com>
+
+ * Import zziplib 0.13.71 .
+ version.ac: Adapted.
+
+2018-03-18 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * Import zziplib 0.13.69.
+ configure.ac, version.ac: Adapted.
+
+2018-02-06 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * Import zziplib 0.13.68.
+ version.ac: Adapted.
+
+2017-06-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * Import zziplib 0.13.66.
+ version.ac, Makefile.am: Adapted.
+
+2017-03-27 Karl Berry <karl@freefriends.org>
+
+ * Makefile.am (AM_TESTS_ENVIRONMENT): use instead of TESTS_ENVIRONMENT.
+ (EXTRA_DIST): TLpatches not Tlpatches.
+
+2016-02-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * Makefile.am, configure.ac: New convention.
+
+2015-07-06 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Better dependencies for 'make check'.
+
+2015-02-16 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Use the fragment ../../am/dist_hook.am.
+
+2014-12-03 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * configure.ac: Added KPSE_COMPILER_VISIBILITY.
+ * Makefile.am [AM_CFLAGS]: Added $(VISIBILITY_CFLAGS).
+
+2014-07-11 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * configure.ac: Reenable mmap for 32- and 64-bit Windows.
+
+2014-07-10 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * configure.ac: Bug fix for MinGW: do not use mmap.
+ Mail from Luigi Scarso <luigi.scarso@gmail.com>
+
+2013-09-02 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Drop ACLOCAL_AMFLAGS.
+ * configure.ac: Use AC_CONFIG_MACRO_DIRS.
+
+2012-07-06 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Use ../../am/reconfig.am and ../../am/rebuild.am.
+
+2013-07-05 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * include/Makefile.am: Moved Makefile fragments to ../../am/.
+
+2013-06-26 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am (SUBDIRS): Build the library first.
+
+2013-01-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Allow subdir-objects.
+
+2012-12-15 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * configure.ac: Use KPSE_BASIC to enable silent rules.
+
+2012-11-16 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Avoid use of deprecated INCLUDES.
+
+2012-03-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Import zziplib-0.13.62.
+ * version.ac: New file defining the zziplib version.
+ * Makefile.am, configure.ac: Adapt.
+
+2012-02-24 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * include/zzip/Makefile.am: Use ../am/hdr_links.am.
+
+2011-10-04 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am (DISTCLEANFILES): Add _configs.sed.
+
+2011-01-07 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Import zziplib-0.13.60.
+ * configure.ac: Adapted.
+
+2010-10-04 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Import zziplib-0.13.59.
+ * configure.ac: Adapted.
+ Added AC_SYS_LARGEFILE_SENSITIVE and AC_FUNC_FSEEKO.
+
+2010-02-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * configure.ac: Test for <zlib.h> requires to set ZLIB flags.
+ Test for <winnt.h> and <winbase.h> needs #include <windows.h>.
+
+2010-01-30 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Adapt to TL2009 build system.
+
diff --git a/Build/source/libs/zziplib/Makefile.am b/Build/source/libs/zziplib/Makefile.am
new file mode 100644
index 00000000000..35b264b475e
--- /dev/null
+++ b/Build/source/libs/zziplib/Makefile.am
@@ -0,0 +1,72 @@
+## $Id$
+## Proxy Makefile.am to build zziplib for TeX Live.
+##
+## Copyright 2017 Karl Berry <tex-live@tug.org>
+## Copyright 2010-2015 Peter Breitenlohner <tex-live@tug.org>
+##
+## This file is free software; the copyright holder
+## gives unlimited permission to copy and/or distribute it,
+## with or without modifications, as long as this notice is preserved.
+
+## We want to re-distribute the whole zziplib source tree.
+EXTRA_DIST = $(ZZIPLIB_TREE)
+
+## Changes applied to the original source tree
+EXTRA_DIST += TLpatches
+
+# Files not to be distributed
+include $(srcdir)/../../am/dist_hook.am
+NEVER_NAMES += $(NEVER_NAMES_SUB)
+
+SUBDIRS = . include/zzip
+
+AM_CPPFLAGS = -Iinclude -I$(top_srcdir)/$(ZZIPLIB_TREE) $(ZLIB_INCLUDES)
+AM_CPPFLAGS += $(ZZIPLIB_DEFINES)
+AM_CFLAGS = $(VISIBILITY_CFLAGS) $(WARNING_CFLAGS)
+
+noinst_LIBRARIES=libzzip.a
+
+nodist_libzzip_a_SOURCES = \
+ @ZZIPLIB_TREE@/zzip/dir.c \
+ @ZZIPLIB_TREE@/zzip/err.c \
+ @ZZIPLIB_TREE@/zzip/fetch.c \
+ @ZZIPLIB_TREE@/zzip/file.c \
+ @ZZIPLIB_TREE@/zzip/info.c \
+ @ZZIPLIB_TREE@/zzip/plugin.c \
+ @ZZIPLIB_TREE@/zzip/stat.c \
+ @ZZIPLIB_TREE@/zzip/write.c \
+ @ZZIPLIB_TREE@/zzip/zip.c
+
+$(libzzip_a_OBJECTS): config.force
+
+DISTCLEANFILES = include/_msvc.in _configs.sed
+
+AM_TESTS_ENVIRONMENT = ZZIPLIB_TREE=$(ZZIPLIB_TREE); export ZZIPLIB_TREE;
+if build
+TESTS = zziplib.test
+check_PROGRAMS = unzzip
+dist_check_SCRIPTS = zziplib.test
+endif build
+zziplib.log: unzzip$(EXEEXT)
+
+distclean-local:
+ rm -rf test
+
+nodist_unzzip_SOURCES = @ZZIPLIB_TREE@/bins/unzzip.c \
+@ZZIPLIB_TREE@/bins/unzzipcat-zip.c @ZZIPLIB_TREE@/bins/unzzipdir-zip.c
+unzzip_LDADD = libzzip.a $(ZLIB_LIBS)
+
+## Rebuild zlib
+@ZLIB_RULE@
+
+# Reconfig
+reconfig_prereq = $(ZLIB_DEPEND)
+
+include $(srcdir)/../../am/reconfig.am
+
+# Rebuild
+rebuild_prereq =
+rebuild_target = all
+CLEANFILES =
+
+include $(srcdir)/../../am/rebuild.am
diff --git a/Build/source/libs/zziplib/Makefile.in b/Build/source/libs/zziplib/Makefile.in
new file mode 100644
index 00000000000..18317fc1cec
--- /dev/null
+++ b/Build/source/libs/zziplib/Makefile.in
@@ -0,0 +1,1465 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@build_TRUE@check_PROGRAMS = unzzip$(EXEEXT)
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \
+ $(top_srcdir)/m4/ax_prefix_config_h.m4 \
+ $(top_srcdir)/m4/zziplib-aligned-access.m4 \
+ $(top_srcdir)/../../m4/kpse-common.m4 \
+ $(top_srcdir)/../../m4/kpse-visibility.m4 \
+ $(top_srcdir)/../../m4/kpse-warnings.m4 \
+ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \
+ $(top_srcdir)/version.ac $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(am__dist_check_SCRIPTS_DIST) \
+ $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AR = ar
+ARFLAGS = cru
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+am__v_AR_1 =
+libzzip_a_AR = $(AR) $(ARFLAGS)
+libzzip_a_LIBADD =
+am__dirstamp = $(am__leading_dot)dirstamp
+nodist_libzzip_a_OBJECTS = @ZZIPLIB_TREE@/zzip/dir.$(OBJEXT) \
+ @ZZIPLIB_TREE@/zzip/err.$(OBJEXT) \
+ @ZZIPLIB_TREE@/zzip/fetch.$(OBJEXT) \
+ @ZZIPLIB_TREE@/zzip/file.$(OBJEXT) \
+ @ZZIPLIB_TREE@/zzip/info.$(OBJEXT) \
+ @ZZIPLIB_TREE@/zzip/plugin.$(OBJEXT) \
+ @ZZIPLIB_TREE@/zzip/stat.$(OBJEXT) \
+ @ZZIPLIB_TREE@/zzip/write.$(OBJEXT) \
+ @ZZIPLIB_TREE@/zzip/zip.$(OBJEXT)
+libzzip_a_OBJECTS = $(nodist_libzzip_a_OBJECTS)
+nodist_unzzip_OBJECTS = @ZZIPLIB_TREE@/bins/unzzip.$(OBJEXT) \
+ @ZZIPLIB_TREE@/bins/unzzipcat-zip.$(OBJEXT) \
+ @ZZIPLIB_TREE@/bins/unzzipdir-zip.$(OBJEXT)
+unzzip_OBJECTS = $(nodist_unzzip_OBJECTS)
+am__DEPENDENCIES_1 =
+unzzip_DEPENDENCIES = libzzip.a $(am__DEPENDENCIES_1)
+am__dist_check_SCRIPTS_DIST = zziplib.test
+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)/../../build-aux/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = @ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzip.Po \
+ @ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzipcat-zip.Po \
+ @ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzipdir-zip.Po \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/dir.Po \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/err.Po \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/fetch.Po \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/file.Po \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/info.Po \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/plugin.Po \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/stat.Po \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/write.Po \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/zip.Po
+am__mv = mv -f
+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 = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(nodist_libzzip_a_SOURCES) $(nodist_unzzip_SOURCES)
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ cscope check recheck distdir distdir-am dist dist-all \
+ distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
+ config.h.in
+# 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__tty_colors_dummy = \
+ mgn= red= grn= lgn= blu= brg= std=; \
+ am__color_tests=no
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red=''; \
+ grn=''; \
+ lgn=''; \
+ blu=''; \
+ mgn=''; \
+ brg=''; \
+ std=''; \
+ fi; \
+}
+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__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
+RECHECK_LOGS = $(TEST_LOGS)
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../../build-aux/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+ $(TEST_LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/../../am/dist_hook.am \
+ $(srcdir)/../../am/rebuild.am $(srcdir)/../../am/reconfig.am \
+ $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ $(top_srcdir)/../../build-aux/compile \
+ $(top_srcdir)/../../build-aux/config.guess \
+ $(top_srcdir)/../../build-aux/config.sub \
+ $(top_srcdir)/../../build-aux/depcomp \
+ $(top_srcdir)/../../build-aux/install-sh \
+ $(top_srcdir)/../../build-aux/missing \
+ $(top_srcdir)/../../build-aux/test-driver \
+ ../../build-aux/ar-lib ../../build-aux/compile \
+ ../../build-aux/config.guess ../../build-aux/config.sub \
+ ../../build-aux/depcomp ../../build-aux/install-sh \
+ ../../build-aux/ltmain.sh ../../build-aux/missing \
+ ../../build-aux/texinfo.tex ../../build-aux/ylwrap ChangeLog \
+ README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+# Exists only to be overridden by the user if desired.
+AM_DISTCHECK_DVI_TARGET = dvi
+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@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+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@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+ZLIB_DEPEND = @ZLIB_DEPEND@
+ZLIB_INCLUDES = @ZLIB_INCLUDES@
+ZLIB_LIBS = @ZLIB_LIBS@
+ZZIPLIB_DEFINES = @ZZIPLIB_DEFINES@
+ZZIPLIB_TREE = @ZZIPLIB_TREE@
+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@
+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@
+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@
+EXTRA_DIST = $(ZZIPLIB_TREE) TLpatches
+NEVER_DIST = `find . $(NEVER_NAMES)`
+
+# Files not to be distributed
+NEVER_NAMES = -name .svn $(NEVER_NAMES_SUB)
+NEVER_NAMES_SUB = -o -name .deps -o -name .dirstamp -o -name '*.$(OBJEXT)'
+NEVER_NAMES_LT = -o -name .libs -o -name '*.lo'
+SUBDIRS = . include/zzip
+AM_CPPFLAGS = -Iinclude -I$(top_srcdir)/$(ZZIPLIB_TREE) \
+ $(ZLIB_INCLUDES) $(ZZIPLIB_DEFINES)
+AM_CFLAGS = $(VISIBILITY_CFLAGS) $(WARNING_CFLAGS)
+noinst_LIBRARIES = libzzip.a
+nodist_libzzip_a_SOURCES = \
+ @ZZIPLIB_TREE@/zzip/dir.c \
+ @ZZIPLIB_TREE@/zzip/err.c \
+ @ZZIPLIB_TREE@/zzip/fetch.c \
+ @ZZIPLIB_TREE@/zzip/file.c \
+ @ZZIPLIB_TREE@/zzip/info.c \
+ @ZZIPLIB_TREE@/zzip/plugin.c \
+ @ZZIPLIB_TREE@/zzip/stat.c \
+ @ZZIPLIB_TREE@/zzip/write.c \
+ @ZZIPLIB_TREE@/zzip/zip.c
+
+DISTCLEANFILES = include/_msvc.in _configs.sed config.force
+AM_TESTS_ENVIRONMENT = ZZIPLIB_TREE=$(ZZIPLIB_TREE); export ZZIPLIB_TREE;
+@build_TRUE@TESTS = zziplib.test
+@build_TRUE@dist_check_SCRIPTS = zziplib.test
+nodist_unzzip_SOURCES = @ZZIPLIB_TREE@/bins/unzzip.c \
+@ZZIPLIB_TREE@/bins/unzzipcat-zip.c @ZZIPLIB_TREE@/bins/unzzipdir-zip.c
+
+unzzip_LDADD = libzzip.a $(ZLIB_LIBS)
+
+# Reconfig
+reconfig_prereq = $(ZLIB_DEPEND)
+
+# Rebuild
+rebuild_prereq =
+rebuild_target = all
+CLEANFILES = rebuild.stamp
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs
+am--refresh: Makefile
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/../../am/reconfig.am $(srcdir)/../../am/rebuild.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
+ esac;
+$(srcdir)/../../am/dist_hook.am $(srcdir)/../../am/reconfig.am $(srcdir)/../../am/rebuild.am $(am__empty):
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+ @test -f $@ || rm -f stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+
+clean-checkPROGRAMS:
+ -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+@ZZIPLIB_TREE@/zzip/$(am__dirstamp):
+ @$(MKDIR_P) @ZZIPLIB_TREE@/zzip
+ @: > @ZZIPLIB_TREE@/zzip/$(am__dirstamp)
+@ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) @ZZIPLIB_TREE@/zzip/$(DEPDIR)
+ @: > @ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/zzip/dir.$(OBJEXT): \
+ @ZZIPLIB_TREE@/zzip/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/zzip/err.$(OBJEXT): \
+ @ZZIPLIB_TREE@/zzip/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/zzip/fetch.$(OBJEXT): \
+ @ZZIPLIB_TREE@/zzip/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/zzip/file.$(OBJEXT): \
+ @ZZIPLIB_TREE@/zzip/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/zzip/info.$(OBJEXT): \
+ @ZZIPLIB_TREE@/zzip/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/zzip/plugin.$(OBJEXT): \
+ @ZZIPLIB_TREE@/zzip/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/zzip/stat.$(OBJEXT): \
+ @ZZIPLIB_TREE@/zzip/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/zzip/write.$(OBJEXT): \
+ @ZZIPLIB_TREE@/zzip/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/zzip/zip.$(OBJEXT): \
+ @ZZIPLIB_TREE@/zzip/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp)
+
+libzzip.a: $(libzzip_a_OBJECTS) $(libzzip_a_DEPENDENCIES) $(EXTRA_libzzip_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f libzzip.a
+ $(AM_V_AR)$(libzzip_a_AR) libzzip.a $(libzzip_a_OBJECTS) $(libzzip_a_LIBADD)
+ $(AM_V_at)$(RANLIB) libzzip.a
+@ZZIPLIB_TREE@/bins/$(am__dirstamp):
+ @$(MKDIR_P) @ZZIPLIB_TREE@/bins
+ @: > @ZZIPLIB_TREE@/bins/$(am__dirstamp)
+@ZZIPLIB_TREE@/bins/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) @ZZIPLIB_TREE@/bins/$(DEPDIR)
+ @: > @ZZIPLIB_TREE@/bins/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/bins/unzzip.$(OBJEXT): \
+ @ZZIPLIB_TREE@/bins/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/bins/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/bins/unzzipcat-zip.$(OBJEXT): \
+ @ZZIPLIB_TREE@/bins/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/bins/$(DEPDIR)/$(am__dirstamp)
+@ZZIPLIB_TREE@/bins/unzzipdir-zip.$(OBJEXT): \
+ @ZZIPLIB_TREE@/bins/$(am__dirstamp) \
+ @ZZIPLIB_TREE@/bins/$(DEPDIR)/$(am__dirstamp)
+
+unzzip$(EXEEXT): $(unzzip_OBJECTS) $(unzzip_DEPENDENCIES) $(EXTRA_unzzip_DEPENDENCIES)
+ @rm -f unzzip$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(unzzip_OBJECTS) $(unzzip_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+ -rm -f @ZZIPLIB_TREE@/bins/*.$(OBJEXT)
+ -rm -f @ZZIPLIB_TREE@/zzip/*.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzip.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzipcat-zip.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzipdir-zip.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/dir.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/err.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/fetch.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/file.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/info.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/plugin.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/stat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/write.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/zip.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+ fi; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ elif test -n "$$redo_logs"; then \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
+ else \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+ fi; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
+ else \
+ color_start= color_end=; \
+ fi; \
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS)
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS)
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+.test.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
+ $(am__post_remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__post_remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__post_remove_distdir)
+
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__post_remove_distdir)
+
+dist-zstd: distdir
+ tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+ $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__post_remove_distdir)
+
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ *.tar.zst*) \
+ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
+ esac
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=../.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
+ && $(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
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \
+ $(dist_check_SCRIPTS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-recursive
+all-am: Makefile $(LIBRARIES) config.h
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+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)
+ -rm -f @ZZIPLIB_TREE@/bins/$(DEPDIR)/$(am__dirstamp)
+ -rm -f @ZZIPLIB_TREE@/bins/$(am__dirstamp)
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/$(am__dirstamp)
+ -rm -f @ZZIPLIB_TREE@/zzip/$(am__dirstamp)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f @ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzip.Po
+ -rm -f @ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzipcat-zip.Po
+ -rm -f @ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzipdir-zip.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/dir.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/err.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/fetch.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/file.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/info.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/plugin.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/stat.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/write.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/zip.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-hdr distclean-local distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f @ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzip.Po
+ -rm -f @ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzipcat-zip.Po
+ -rm -f @ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzipdir-zip.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/dir.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/err.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/fetch.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/file.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/info.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/plugin.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/stat.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/write.Po
+ -rm -f @ZZIPLIB_TREE@/zzip/$(DEPDIR)/zip.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) all check-am install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--depfiles am--refresh check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-cscope clean-generic \
+ clean-noinstLIBRARIES cscope cscopelist-am ctags ctags-am dist \
+ dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
+ dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \
+ distclean-compile distclean-generic distclean-hdr \
+ distclean-local distclean-tags distcleancheck distdir \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+ ps ps-am recheck tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+dist-hook:
+ cd "$(distdir)" && rm -rf $(NEVER_DIST)
+
+$(libzzip_a_OBJECTS): config.force
+zziplib.log: unzzip$(EXEEXT)
+
+distclean-local:
+ rm -rf test
+
+@ZLIB_RULE@
+config.force: $(reconfig_prereq)
+ @if test -f $@; then :; else \
+ trap 'rm -rf reconfig.lock' 1 2 13 15; \
+ if mkdir reconfig.lock 2>/dev/null; then \
+ echo timestamp >$@; \
+ $(SHELL) ./config.status --recheck; \
+ rmdir reconfig.lock; \
+ else \
+ while test -d rebuild.lock && test -z "$$dry"; do sleep 1; done; \
+ test -f $@; \
+ fi; \
+ fi
+rebuild.stamp: $(rebuild_target)
+ echo timestamp >$@
+
+.PHONY: rebuild
+rebuild: $(rebuild_prereq)
+ @dry=; for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=*|--*);; \
+ *n*) dry=:;; \
+ esac; \
+ done; \
+ if test -f rebuild.stamp; then :; else \
+ $$dry trap 'rm -rf rebuild.lock' 1 2 13 15; \
+ if $$dry mkdir rebuild.lock 2>/dev/null; then \
+ $(MAKE) $(AM_MAKEFLAGS) rebuild.stamp; \
+ $$dry rmdir rebuild.lock; \
+ else \
+ while test -d rebuild.lock && test -z "$$dry"; do sleep 1; done; \
+ fi; \
+ $$dry test -f rebuild.stamp; exit $$?; \
+ fi
+
+# 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/Build/source/libs/zziplib/README b/Build/source/libs/zziplib/README
new file mode 100644
index 00000000000..60816a9045b
--- /dev/null
+++ b/Build/source/libs/zziplib/README
@@ -0,0 +1,17 @@
+ Building zziplib-0.13.69 as part of the TL tree
+ ===============================================
+
+This directory libs/zziplib/ uses a proxy Makefile.am to build the zziplib
+library from the unmodified (*) source tree in libs/zziplib/zziplib-src/,
+bypassing the original build system.
+
+(*) The directory TLpatches contains patches (if any) applied to
+the original source tree.
+
+As far as applicable, the tests in libs/zziplib-src/configure.ac have been
+copied to libs/zziplib/configure.ac.
+
+=============================
+
+2010-01-30 Peter Breitenlohner <peb@mppmu.mpg.de>
+2018-03-18 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
diff --git a/Build/source/libs/zziplib/TLpatches/ChangeLog b/Build/source/libs/zziplib/TLpatches/ChangeLog
new file mode 100644
index 00000000000..89d74e5a6b7
--- /dev/null
+++ b/Build/source/libs/zziplib/TLpatches/ChangeLog
@@ -0,0 +1,75 @@
+2020-04-23 Luigi Scarso <luigi.scarso@gmail.com>
+
+ * Import zziplib-0.13.71.
+ Patches nad TL-Changes unchanged.
+
+2018-03-18 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * Import zziplib-0.13.69.
+ * patch-01-binary, patch-02-bugfix, patch-03-w64-ptr,
+ patch-04-strnlen: Removed.
+ * patch-05-no-const: Added because a crash occurs on
+ Windows for -D_USE_MMAP=1.
+
+2018-03-01 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * patch-04-strnlen: Add for platforms without strnlen.
+
+2018-02-06 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * Import zziplib-0.13.68.
+ * patch-01-binary, patch-02-bugfix, patch-03-w64-ptr: Adapted.
+
+2017-06-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * Import zziplib-0.13.66.
+ * patch-01-binary, patch-02-bugfix, patch-03-w64-ptr: Adapted.
+
+2015-03-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-02-bugfix: More fix mmap for WIN32/WIN64, from Akira.
+
+2014-07-15 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-03-w64-ptr: Avoid WIN64 warning due to different size.
+
+2014-07-14 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-02-bugfix (new): Fix mmap for WIN32/WIN64, from Akira.
+
+2014-07-11 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-01-binary (new): Do not convert NL => CRLF (required
+ under Windows for our test case), from Akira.
+
+2012-03-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Import zziplib-0.13.62.
+
+2011-01-07 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Adapted to zziplib-0.13.60.
+ * patch-02-aix-strcasecmp, patch-03-inline (removed):
+ Now in source tree.
+
+2010-10-04 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Adapted to zziplib-0.13.59.
+ * patch-01-old-style-parameter (removed): now in source tree.
+ * patch-03-inline: Add static instead of dropping inline.
+
+2010-07-05 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-03-inline (new): Can't use non-static inline for Sun
+ Studio C, mail from Vladimir Volovich, Wed, 16 Jun 2010 20:18:17.
+
+2010-06-04 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-02-aix-strcasecmp (new): Need to #include <strings.h>
+ under _AIX for declaration of strcasecmp().
+ From Taco.
+
+2010-01-30 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-01-old-style-parameter (new): Avoid compiler warning.
+
diff --git a/Build/source/libs/zziplib/TLpatches/TL-Changes b/Build/source/libs/zziplib/TLpatches/TL-Changes
new file mode 100644
index 00000000000..5fdb9316447
--- /dev/null
+++ b/Build/source/libs/zziplib/TLpatches/TL-Changes
@@ -0,0 +1,26 @@
+Changes applied to the zziplib-0.13.71 tree as obtained from:
+https://github.com/gdraheim/zziplib/archive/v0.13.71.tar.gz
+
+Copied:
+ m4/ax_prefix_config_h.m4 -> ../m4/ (without AC_BEFORE)
+ m4/ac_sys_largefile_sensitive.m4 -> ../m4/
+
+Removed:
+ .cdtproject
+ .gitignore
+ .pydevproject
+ aclocal.m4
+ msvc/
+ uses/
+ zzip/_msvc.h
+
+Converted Dos/Win line ends to native:
+ docs/README.MSVC6
+ docs/sdocbook.css
+ msvc6/*.dsp
+ msvc6/*.dsw
+ msvc7/*.sln
+ msvc7/*.vcproj
+ msvc8/*.sln
+ msvc8/*.vcproj
+ zzip/zziplib.wpj
diff --git a/Build/source/libs/zziplib/TLpatches/patch-01-header b/Build/source/libs/zziplib/TLpatches/patch-01-header
new file mode 100644
index 00000000000..3364f16f99a
--- /dev/null
+++ b/Build/source/libs/zziplib/TLpatches/patch-01-header
@@ -0,0 +1,11 @@
+diff -ur lib.h.orig lib.h
+--- lib.h.orig 2018-06-26 21:16:01.758253475 +0200
++++ lib.h 2018-06-26 21:16:15.786252900 +0200
+@@ -16,6 +16,7 @@
+ #include <zzip/zzip.h>
+ #include <zzip/plugin.h>
+ #include <zzip/stdint.h>
++#include <zzip/zzip32.h>
+
+ #ifdef __cplusplus
+ extern "C" {
diff --git a/Build/source/libs/zziplib/TLpatches/patch-05-no-const b/Build/source/libs/zziplib/TLpatches/patch-05-no-const
new file mode 100644
index 00000000000..b90c3867f80
--- /dev/null
+++ b/Build/source/libs/zziplib/TLpatches/patch-05-no-const
@@ -0,0 +1,12 @@
+diff -ur zziplib-0.13.69/zzip/plugin.c zziplib-src/zzip/plugin.c
+--- zziplib-0.13.69/zzip/plugin.c Sat Mar 17 21:46:45 2018
++++ zziplib-src/zzip/plugin.c Sun Mar 18 08:04:42 2018
+@@ -41,7 +41,7 @@
+ return st.st_size;
+ }
+
+-static const struct zzip_plugin_io default_io = {
++static struct zzip_plugin_io default_io = {
+ &open,
+ &close,
+ &_zzip_read,
diff --git a/Build/source/libs/zziplib/ac/withenable.ac b/Build/source/libs/zziplib/ac/withenable.ac
new file mode 100644
index 00000000000..5e967ca0b10
--- /dev/null
+++ b/Build/source/libs/zziplib/ac/withenable.ac
@@ -0,0 +1,7 @@
+## libs/zziplib/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/zziplib/
+dnl
+dnl Copyright (C) 2010, 2010 Peter Breitenlohner <tex-live@tug.org>
+dnl You may freely use, modify and/or distribute this file.
+dnl
+## configure options and TL libraries required for zziplib
+KPSE_WITH_LIB([zziplib], [zlib])
diff --git a/Build/source/libs/zziplib/ac/zziplib.ac b/Build/source/libs/zziplib/ac/zziplib.ac
new file mode 100644
index 00000000000..2168307947f
--- /dev/null
+++ b/Build/source/libs/zziplib/ac/zziplib.ac
@@ -0,0 +1,9 @@
+## libs/zziplib/ac/zziplib.ac: configure.ac fragment for the TeX Live subdirectory libs/zziplib/
+dnl
+dnl Copyright (C) 2010 Peter Breitenlohner <tex-live@tug.org>
+dnl You may freely use, modify and/or distribute this file.
+dnl
+## basic check of system zziplib
+KPSE_TRY_LIB([zziplib],
+ [#include <zzip/zzip.h>],
+ [ZZIP_FILE *z_FILE = zzip_open("file_name", 0);])
diff --git a/Build/source/libs/zziplib/aclocal.m4 b/Build/source/libs/zziplib/aclocal.m4
new file mode 100644
index 00000000000..01b56e1ac02
--- /dev/null
+++ b/Build/source/libs/zziplib/aclocal.m4
@@ -0,0 +1,1175 @@
+# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
+
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# Copyright (C) 2002-2020 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.16'
+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.16.3], [],
+ [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.16.3])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-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997-2020 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-2020 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-2020 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.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ AS_CASE([$CONFIG_FILES],
+ [*\'*], [eval set x "$CONFIG_FILES"],
+ [*], [set x $CONFIG_FILES])
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`AS_DIRNAME(["$am_mf"])`
+ am_filepart=`AS_BASENAME(["$am_mf"])`
+ AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles]) || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE="gmake" (or whatever is
+ necessary). You can also try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).])
+ fi
+ AS_UNSET([am_dirpart])
+ AS_UNSET([am_filepart])
+ AS_UNSET([am_mf])
+ AS_UNSET([am_rc])
+ rm -f conftest-deps.mk
+}
+])# _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.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll 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" MAKE="${MAKE-make}"])])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996-2020 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:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+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: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST([install_sh])])
+
+# Copyright (C) 2003-2020 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])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2020 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_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well. Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+ [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+ am_maintainer_other[ make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer])],
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+]
+)
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001-2020 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 whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+ AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+ ['0:this is the am__doit target'],
+ [AS_CASE([$s],
+ [BSD], [am__include='.include' am__quote='"'],
+ [am__include='include' am__quote=''])])
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997-2020 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
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
+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-2020 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-2020 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-2020 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-2020 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-2020 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-2020 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-2020 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-2020 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 <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
+ rm -rf conftest.dir
+
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/ac_sys_largefile_sensitive.m4])
+m4_include([m4/ax_prefix_config_h.m4])
+m4_include([m4/zziplib-aligned-access.m4])
+m4_include([../../m4/kpse-common.m4])
+m4_include([../../m4/kpse-visibility.m4])
+m4_include([../../m4/kpse-warnings.m4])
+m4_include([../../m4/kpse-zlib-flags.m4])
diff --git a/Build/source/libs/zziplib/config.h.in b/Build/source/libs/zziplib/config.h.in
new file mode 100644
index 00000000000..76409b307c3
--- /dev/null
+++ b/Build/source/libs/zziplib/config.h.in
@@ -0,0 +1,201 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* Define if pointers to integers require aligned access */
+#undef HAVE_ALIGNED_ACCESS_REQUIRED
+
+/* Define to 1 if you have the <byteswap.h> header file. */
+#undef HAVE_BYTESWAP_H
+
+/* Define to 1 if you have the <direct.h> header file. */
+#undef HAVE_DIRECT_H
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_DIRENT_H
+
+/* Define to 1 if you have the <fnmatch.h> header file. */
+#undef HAVE_FNMATCH_H
+
+/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
+#undef HAVE_FSEEKO
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <io.h> header file. */
+#undef HAVE_IO_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strcasecmp' function. */
+#undef HAVE_STRCASECMP
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the `strndup' function. */
+#undef HAVE_STRNDUP
+
+/* Define to 1 if you have the `strnlen' function. */
+#undef HAVE_STRNLEN
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/int_types.h> header file. */
+#undef HAVE_SYS_INT_TYPES_H
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#undef HAVE_SYS_MMAN_H
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_NDIR_H
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the <winbase.h> header file. */
+#undef HAVE_WINBASE_H
+
+/* Define to 1 if you have the <windows.h> header file. */
+#undef HAVE_WINDOWS_H
+
+/* Define to 1 if you have the <winnt.h> header file. */
+#undef HAVE_WINNT_H
+
+/* Define to 1 if you have the <zlib.h> header file. */
+#undef HAVE_ZLIB_H
+
+/* whether the system defaults to 32bit off_t but can do 64bit when requested
+ */
+#undef LARGEFILE_SENSITIVE
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* The size of `int', as computed by sizeof. */
+#undef SIZEOF_INT
+
+/* The size of `long', as computed by sizeof. */
+#undef SIZEOF_LONG
+
+/* The size of `short', as computed by sizeof. */
+#undef SIZEOF_SHORT
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+# undef WORDS_BIGENDIAN
+# endif
+#endif
+
+/* Define to 1 if <zlib.h> declares 'z_const'. */
+#undef ZLIB_CONST
+
+/* Enable large inode numbers on Mac OS X 10.5. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
+#undef _LARGEFILE_SOURCE
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
+/* Define to `long long' if <sys/types.h> does not define. */
+#undef __int64
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef __cplusplus
+#undef inline
+#endif
+
+/* Define to `_zzip_off_t' if <sys/types.h> does not define. */
+#undef off64_t
+
+/* Define to the equivalent of the C99 'restrict' keyword, or to
+ nothing if this is not supported. Do not define if restrict is
+ supported directly. */
+#undef restrict
+/* Work around a bug in Sun C++: it does not support _Restrict or
+ __restrict__, even though the corresponding Sun C compiler ends up with
+ "#define restrict _Restrict" or "#define restrict __restrict__" in the
+ previous line. Perhaps some future version of Sun C++ will work with
+ restrict; if so, hopefully it defines __RESTRICT like Sun C does. */
+#if defined __SUNPRO_CC && !defined __RESTRICT
+# define _Restrict
+# define __restrict__
+#endif
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef ssize_t
+
+/* Define as empty if not declared in <zlib.h>. */
+#undef z_const
diff --git a/Build/source/libs/zziplib/configure b/Build/source/libs/zziplib/configure
new file mode 100755
index 00000000000..6e37cf2c6b7
--- /dev/null
+++ b/Build/source/libs/zziplib/configure
@@ -0,0 +1,8479 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for zziplib (TeX Live) 0.13.71.
+#
+# Report bugs to <tex-k@tug.org>.
+#
+#
+# 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 and tex-k@tug.org
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: 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'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&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='zziplib (TeX Live)'
+PACKAGE_TARNAME='zziplib--tex-live-'
+PACKAGE_VERSION='0.13.71'
+PACKAGE_STRING='zziplib (TeX Live) 0.13.71'
+PACKAGE_BUGREPORT='tex-k@tug.org'
+PACKAGE_URL=''
+
+ac_unique_file="zziplib-src/zziplib.spec"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+ZZIPLIB_TREE
+build_FALSE
+build_TRUE
+ZLIB_RULE
+ZLIB_DEPEND
+ZLIB_LIBS
+ZLIB_INCLUDES
+ZZIPLIB_DEFINES
+EGREP
+GREP
+CPP
+VISIBILITY_CFLAGS
+LN_S
+RANLIB
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+WARNING_CFLAGS
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+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
+am__quote'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+enable_maintainer_mode
+enable_dependency_tracking
+enable_compiler_warnings
+enable_largefile
+with_system_zlib
+with_zlib_includes
+with_zlib_libdir
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -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 zziplib (TeX Live) 0.13.71 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/zziplib--tex-live-]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of zziplib (TeX Live) 0.13.71:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+ --enable-maintainer-mode
+ enable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
+ --enable-compiler-warnings=[no|min|yes|max|all]
+ Turn on compiler warnings [default: yes if
+ maintainer-mode, min otherwise]
+ --disable-largefile omit support for large files
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-system-zlib use installed zlib headers and library
+ --with-zlib-includes=DIR
+ zlib headers installed in DIR
+ --with-zlib-libdir=DIR zlib library installed in DIR
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <tex-k@tug.org>.
+_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
+zziplib (TeX Live) configure 0.13.71
+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_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_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ---------------------------- ##
+## Report this to tex-k@tug.org ##
+## ---------------------------- ##"
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# 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_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ 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
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=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
+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_type
+
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid; break
+else
+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=$ac_mid; break
+else
+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid
+else
+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ return 1;
+ if (($2) < 0)
+ {
+ long int i = longval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%ld", i);
+ }
+ else
+ {
+ unsigned long int i = ulongval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%lu", i);
+ }
+ /* Do not output a trailing newline, as this causes \r\n confusion
+ on some platforms. */
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+ ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+ fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_compute_int
+
+# 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 <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#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
+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 zziplib (TeX Live) $as_me 0.13.71, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+ac_aux_dir=
+for ac_dir in ../../build-aux "$srcdir"/../../build-aux; 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 ../../build-aux \"$srcdir\"/../../build-aux" "$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.
+
+
+
+
+am__api_version='1.16'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+ (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ case $?:`cat confinc.out 2>/dev/null` in #(
+ '0:this is the am__doit target') :
+ case $s in #(
+ BSD) :
+ am__include='.include' am__quote='"' ;; #(
+ *) :
+ am__include='include' am__quote='' ;;
+esac ;; #(
+ *) :
+ ;;
+esac
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+$as_echo "${_am_result}" >&6; }
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+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 <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+# Check whether --enable-compiler-warnings was given.
+if test "${enable_compiler_warnings+set}" = set; then :
+ enableval=$enable_compiler_warnings;
+fi
+case $enable_compiler_warnings in #(
+ no | min | yes | max | all) :
+ ;; #(
+ *) :
+ if test "x$enable_maintainer_mode" = xyes; then :
+ enable_compiler_warnings=yes
+else
+ enable_compiler_warnings=min
+fi ;;
+esac
+
+##tldbg KPSE_BASIC: Remember zziplib () as Kpse_Package (for future messages).
+
+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='zziplib--tex-live-'
+ VERSION='0.13.71'
+
+
+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:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+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: <https://www.gnu.org/software/coreutils/>.
+
+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
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts prototypes" >&5
+$as_echo_n "checking whether the compiler accepts prototypes... " >&6; }
+if ${kb_cv_c_prototypes+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+int
+main ()
+{
+extern void foo(int i,...);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ kb_cv_c_prototypes=yes
+else
+ kb_cv_c_prototypes=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kb_cv_c_prototypes" >&5
+$as_echo "$kb_cv_c_prototypes" >&6; }
+if test "x$kb_cv_c_prototypes" = xno; then
+ as_fn_error $? "Sorry, your compiler does not understand prototypes." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5
+$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; }
+if ${kpse_cv_warning_cflags+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$GCC" = xyes; then
+ kpse_cv_warning_cflags=
+if test "x$enable_compiler_warnings" != xno; then
+ kpse_cv_warning_cflags="-Wimplicit -Wreturn-type"
+ case `$CC -dumpversion` in #(
+ 3.4.* | 4.* | 5.*) :
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wdeclaration-after-statement" ;; #(
+ *) :
+ ;;
+esac
+ case `$CC -dumpversion` in #(
+ 3.[234].* | 4.* | 5.*) :
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wno-unknown-pragmas" ;; #(
+ *) :
+ ;;
+esac
+ if test "x$enable_compiler_warnings" != xmin; then
+ kpse_cv_warning_cflags="-Wall -Wunused $kpse_cv_warning_cflags"
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wmissing-prototypes -Wmissing-declarations"
+ if test "x$enable_compiler_warnings" != xyes; then
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith"
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wcast-qual -Wcast-align -Wwrite-strings"
+ case `$CC -dumpversion` in #(
+ 3.4.* | 4.* | 5.*) :
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wold-style-definition" ;; #(
+ *) :
+ ;;
+esac
+ if test "x$enable_compiler_warnings" != xmax; then
+ kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wshadow"
+ fi
+ fi
+ fi
+fi
+elif test "x$enable_compiler_warnings" = xno; then
+ kpse_cv_warning_cflags=
+else
+ kpse_cv_warning_cflags= # FIXME: warning flags for non-GNU C compilers
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cflags" >&5
+$as_echo "$kpse_cv_warning_cflags" >&6; }
+WARNING_CFLAGS=$kpse_cv_warning_cflags
+
+
+
+
+
+
+
+
+# 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
+
+
+
+# Checks for programs.
+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 <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+if test -n "$ac_tool_prefix"; then
+ # 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
+
+{ $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
+
+
+echo 'tldbg:KPSE_COMPILER_VISIBILITY called.' >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for C to hide external symbols" >&5
+$as_echo_n "checking CFLAGS for C to hide external symbols... " >&6; }
+if ${kpse_cv_visibility_cflags+:} 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
+
+kpse_cv_visibility_cflags=unknown
+kpse_save_flags=$CFLAGS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+ extern void foo(void);
+ void foo(void){printf("foo\n");}
+_ACEOF
+# FIXME: Add tests for non-GNU compilers
+for kpse_flag in '-fvisibility=hidden -fvisibility-inlines-hidden' '-fvisibility=hidden'; do
+ CFLAGS="$kpse_save_flags -Werror $kpse_flag"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ kpse_cv_visibility_cflags=$kpse_flag; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+done
+CFLAGS=$kpse_save_flags
+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: $kpse_cv_visibility_cflags" >&5
+$as_echo "$kpse_cv_visibility_cflags" >&6; }
+case $kpse_cv_visibility_cflags in #(
+ unknown) :
+ ;; #(
+ *) :
+ VISIBILITY_CFLAGS=$kpse_cv_visibility_cflags
+ ;;
+esac
+
+
+
+
+
+# Checks for header files.
+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 <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> 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 <limits.h>
+#else
+# include <assert.h>
+#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 <ac_nonexistent.h>
+_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 <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> 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 <limits.h>
+#else
+# include <assert.h>
+#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 <ac_nonexistent.h>
+_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 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 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 <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+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 <string.h>
+
+_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 <stdlib.h>
+
+_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 <ctype.h>
+#include <stdlib.h>
+#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
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+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 stdint.h unistd.h windows.h sys/int_types.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in winnt.h winbase.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" "#include <windows.h>
+"
+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 sys/types.h sys/mman.h sys/stat.h sys/param.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+ for ac_header in io.h direct.h byteswap.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in fnmatch.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default"
+if test "x$ac_cv_header_fnmatch_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_FNMATCH_H 1
+_ACEOF
+
+fi
+
+done
+
+
+# ---------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether can use mmap for file scanning" >&5
+$as_echo_n "checking whether can use mmap for file scanning... " >&6; }
+enable_mmap='no (just a bit slower)'
+test "x$ac_cv_header_winbase_h" = xyes && enable_mmap="yes, winbase.h"
+test "x$ac_cv_header_sys_mman_h" = xyes && enable_mmap="yes, sys/mman.h"
+case $enable_mmap in #(
+ yes*) :
+ ZZIPLIB_DEFINES='-D_USE_MMAP' ;; #(
+ *) :
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_mmap" >&5
+$as_echo "$enable_mmap" >&6; }
+
+
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if ${ac_cv_sys_file_offset_bits+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if ${ac_cv_sys_large_files+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ fi
+
+
+fi
+
+# we know about some internals of ac_sys_largefile here...
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system differentiates 64bit off_t by defines" >&5
+$as_echo_n "checking whether system differentiates 64bit off_t by defines... " >&6; }
+ac_cv_sys_largefile_sensitive="no"
+if test ".${ac_cv_sys_file_offset_bits-no}${ac_cv_sys_large_files-no}" != ".nono"
+then ac_cv_sys_largefile_sensitive="yes"
+
+$as_echo "#define LARGEFILE_SENSITIVE 1" >>confdefs.h
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_sensitive" >&5
+$as_echo "$ac_cv_sys_largefile_sensitive" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_source+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_sys_largefile_source=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGEFILE_SOURCE 1
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_sys_largefile_source=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_cv_sys_largefile_source=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
+$as_echo "$ac_cv_sys_largefile_source" >&6; }
+case $ac_cv_sys_largefile_source in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
+_ACEOF
+;;
+esac
+rm -rf conftest*
+
+# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+# in glibc 2.1.3, but that breaks too many other things.
+# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+if test $ac_cv_sys_largefile_source != unknown; then
+
+$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
+
+fi
+
+
+# Checks for typedefs, structures, and compiler characteristics.
+{ $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 for an ANSI C-conforming const" >&5
+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+if ${ac_cv_c_const+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this sort of thing. */
+ typedef int charset[2];
+ const charset cs = { 0, 0 };
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *pcpcc;
+ char **ppc;
+ /* NEC SVR4.0.2 mips cc rejects this. */
+ struct point {int x, y;};
+ static struct point const zero = {0,0};
+ /* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in
+ an arm of an if-expression whose if-part is not a constant
+ expression */
+ const char *g = "string";
+ pcpcc = &g + (g ? g-g : 0);
+ /* HPUX 7.0 cc rejects these. */
+ ++pcpcc;
+ ppc = (char**) pcpcc;
+ pcpcc = (char const *const *) ppc;
+ { /* SCO 3.2v4 cc rejects this sort of thing. */
+ char tx;
+ char *t = &tx;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+ if (s) return 0;
+ }
+ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+ }
+ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+ }
+ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; } bx;
+ struct s *b = &bx; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+ if (!foo) return 0;
+ }
+ return !cs[0] && !zero.x;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_const=yes
+else
+ ac_cv_c_const=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+$as_echo "$ac_cv_c_const" >&6; }
+if test $ac_cv_c_const = no; then
+
+$as_echo "#define const /**/" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
+$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
+if ${ac_cv_c_restrict+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_restrict=no
+ # The order here caters to the fact that C++ does not require restrict.
+ for ac_kw in __restrict __restrict__ _Restrict restrict; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+typedef int * int_ptr;
+ int foo (int_ptr $ac_kw ip) {
+ return ip[0];
+ }
+int
+main ()
+{
+int s[1];
+ int * $ac_kw t = s;
+ t[0] = 0;
+ return foo(t)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_restrict=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_restrict" != no && break
+ done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
+$as_echo "$ac_cv_c_restrict" >&6; }
+
+ case $ac_cv_c_restrict in
+ restrict) ;;
+ no) $as_echo "#define restrict /**/" >>confdefs.h
+ ;;
+ *) cat >>confdefs.h <<_ACEOF
+#define restrict $ac_cv_c_restrict
+_ACEOF
+ ;;
+ esac
+
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
+if test "x$ac_cv_type_ssize_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define ssize_t int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "off64_t" "ac_cv_type_off64_t" "$ac_includes_default"
+if test "x$ac_cv_type_off64_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define off64_t _zzip_off_t
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "__int64" "ac_cv_type___int64" "$ac_includes_default"
+if test "x$ac_cv_type___int64" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define __int64 long long
+_ACEOF
+
+fi
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
+$as_echo_n "checking size of short... " >&6; }
+if ${ac_cv_sizeof_short+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_short" = yes; then
+ { { $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 "cannot compute sizeof (short)
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_short=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
+$as_echo "$ac_cv_sizeof_short" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SHORT $ac_cv_sizeof_short
+_ACEOF
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+$as_echo_n "checking size of int... " >&6; }
+if ${ac_cv_sizeof_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_int" = yes; then
+ { { $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 "cannot compute sizeof (int)
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_int=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+$as_echo "$ac_cv_sizeof_int" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+$as_echo_n "checking size of long... " >&6; }
+if ${ac_cv_sizeof_long+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_long" = yes; then
+ { { $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 "cannot compute sizeof (long)
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_long=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+$as_echo "$ac_cv_sizeof_long" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if ${ac_cv_c_bigendian+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then :
+ # Try to guess by grepping values from an object file.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_bigendian=no
+else
+ ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+ yes)
+ $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+ no)
+ ;; #(
+ universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+ ;; #(
+ *)
+ as_fn_error $? "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if pointers to integers require aligned access" >&5
+$as_echo_n "checking if pointers to integers require aligned access... " >&6; }
+if ${zziplib_cv_aligned_access+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ case $host_cpu in #(
+ alpha*|arm*|bfin*|hp*|mips*|sh*|sparc*|ia64|nv1) :
+ zziplib_cv_aligned_access=yes ;; #(
+ *) :
+ zziplib_cv_aligned_access=no ;;
+esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+char* string = malloc(40);
+int i;
+for (i=0; i < 40; i++) string[i] = i;
+{
+ void* s = string;
+ int* p = s+1;
+ int* q = s+2;
+ if (*p == *q) { return 1; }
+}
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ zziplib_cv_aligned_access=no
+else
+ zziplib_cv_aligned_access=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $zziplib_cv_aligned_access" >&5
+$as_echo "$zziplib_cv_aligned_access" >&6; }
+if test "x$zziplib_cv_aligned_access" = xyes ; then
+
+$as_echo "#define HAVE_ALIGNED_ACCESS_REQUIRED 1" >>confdefs.h
+
+fi
+
+
+# Checks for library functions.
+for ac_func in strcasecmp strnlen strndup
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+kpse_save_CPPFLAGS=$CPPFLAGS
+kpse_save_LIBS=$LIBS
+
+##tldbg _KPSE_INIT: Initialize TL infrastructure.
+kpse_BLD=`(cd "./../../." && pwd)`
+kpse_SRC=`(cd "$srcdir/../../." && pwd)`
+
+##tldbg _KPSE_LIB_FLAGS: Setup zlib (-lz) flags.
+echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=zlib, libname=z, options=, tlincl=-IBLD/libs/zlib/include, tllib=BLD/libs/zlib/libz.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/zlib/include/zconf.h.' >&5
+##tldbg _KPSE_LIB_FLAGS_TL: zlib (z) .
+
+# Check whether --with-system-zlib was given.
+if test "${with_system_zlib+set}" = set; then :
+ withval=$with_system_zlib;
+fi
+
+# Check whether --with-zlib-includes was given.
+if test "${with_zlib_includes+set}" = set; then :
+ withval=$with_zlib_includes;
+fi
+
+# Check whether --with-zlib-libdir was given.
+if test "${with_zlib_libdir+set}" = set; then :
+ withval=$with_zlib_libdir;
+fi
+if test "x$with_system_zlib" = xyes; then
+ ##tldbg _KPSE_LIB_FLAGS_SYSTEM: zlib (z).
+if test "x$with_zlib_includes" != x && test "x$with_zlib_includes" != xyes; then
+ ZLIB_INCLUDES="-I$with_zlib_includes"
+fi
+ZLIB_LIBS="-lz"
+if test "x$with_zlib_libdir" != x && test "x$with_zlib_libdir" != xyes; then
+ ZLIB_LIBS="-L$with_zlib_libdir $ZLIB_LIBS"
+fi
+else
+ ZLIB_INCLUDES="-I$kpse_BLD/libs/zlib/include"
+ ZLIB_LIBS="$kpse_BLD/libs/zlib/libz.a"
+ ZLIB_DEPEND='${top_builddir}/../../libs/zlib/libz.a'
+ ZLIB_RULE='# Rebuild libz
+$(ZLIB_DEPEND): ${top_builddir}/../../libs/zlib/include/zconf.h
+ cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild
+${top_builddir}/../../libs/zlib/include/zconf.h:
+ cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5
+$as_echo_n "checking if <zlib.h> defines 'z_const'... " >&6; }
+if ${kpse_cv_have_decl_z_const+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\"
+eval LIBS=\"$ZLIB_LIBS \$LIBS\"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <zlib.h>
+int
+main ()
+{
+z_const char * foo();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ kpse_cv_have_decl_z_const=yes
+else
+ kpse_cv_have_decl_z_const=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS=$kpse_save_CPPFLAGS
+LIBS=$kpse_save_LIBS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_decl_z_const" >&5
+$as_echo "$kpse_cv_have_decl_z_const" >&6; }
+case $kpse_cv_have_decl_z_const in #(
+ yes) :
+
+$as_echo "#define ZLIB_CONST 1" >>confdefs.h
+ ;; #(
+ *) :
+
+$as_echo "#define z_const /**/" >>confdefs.h
+ ;;
+esac
+
+
+ if test "x$enable_build" != xno; then
+ build_TRUE=
+ build_FALSE='#'
+else
+ build_TRUE='#'
+ build_FALSE=
+fi
+
+
+if test "x$enable_build" != xno || test -f config.force; then
+
+eval CPPFLAGS=\"$ZLIB_INCLUDES \$CPPFLAGS\"
+eval LIBS=\"$ZLIB_LIBS \$LIBS\"
+
+for ac_header in zlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_zlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ZLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+ac_fn_c_check_func "$LINENO" "zlibVersion" "ac_cv_func_zlibVersion"
+if test "x$ac_cv_func_zlibVersion" = xyes; then :
+
+else
+ as_fn_error $? "zlib not found" "$LINENO" 5
+fi
+
+CPPFLAGS=$kpse_save_CPPFLAGS
+LIBS=$kpse_save_LIBS
+
+
+echo timestamp >config.force
+fi
+
+ZZIPLIB_TREE=zziplib-src
+
+
+# -----------------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: creating include/zzip/_msvc.in via zzip/_msvc.sed of config.h.in" >&5
+$as_echo "creating include/zzip/_msvc.in via zzip/_msvc.sed of config.h.in" >&6; }
+test -d include || mkdir include
+sed -f $srcdir/$ZZIPLIB_TREE/zzip/_msvc.sed $srcdir/config.h.in >include/_msvc.in
+ac_config_headers="$ac_config_headers config.h"
+
+ac_config_commands="$ac_config_commands include/zzip/_config.h"
+
+ac_config_commands="$ac_config_commands include/zzip/_msvc.h"
+
+
+ac_config_files="$ac_config_files Makefile include/zzip/Makefile"
+
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+if test -z "${build_TRUE}" && test -z "${build_FALSE}"; then
+ as_fn_error $? "conditional \"build\" 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 zziplib (TeX Live) $as_me 0.13.71, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <tex-k@tug.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+zziplib (TeX Live) config.status 0.13.71
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
+PACKAGE="$PACKAGE"
+PACKAGE="$PACKAGE"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "include/zzip/_config.h") CONFIG_COMMANDS="$CONFIG_COMMANDS include/zzip/_config.h" ;;
+ "include/zzip/_msvc.h") CONFIG_COMMANDS="$CONFIG_COMMANDS include/zzip/_msvc.h" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "include/zzip/Makefile") CONFIG_FILES="$CONFIG_FILES include/zzip/Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/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
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ case $CONFIG_FILES in #(
+ *\'*) :
+ eval set x "$CONFIG_FILES" ;; #(
+ *) :
+ set x $CONFIG_FILES ;; #(
+ *) :
+ ;;
+esac
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$am_mf" : 'X\(//\)[^/]' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$am_mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$am_mf" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { echo "$as_me:$LINENO: cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles" >&5
+ (cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE=\"gmake\" (or whatever is
+ necessary). You can also try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ { am_dirpart=; unset am_dirpart;}
+ { am_filepart=; unset am_filepart;}
+ { am_mf=; unset am_mf;}
+ { am_rc=; unset am_rc;}
+ rm -f conftest-deps.mk
+}
+ ;;
+ "include/zzip/_config.h":C) ac_prefix_conf_OUT=`echo include/zzip/_config.h`
+ac_prefix_conf_DEF=`echo _$ac_prefix_conf_OUT | sed -e "y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:" -e "s/[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g"`
+ac_prefix_conf_PKG=`echo zzip`
+ac_prefix_conf_LOW=`echo _$ac_prefix_conf_PKG | sed -e "y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:"`
+ac_prefix_conf_UPP=`echo $ac_prefix_conf_PKG | sed -e "y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:" -e "/^[0123456789]/s/^/_/"`
+ac_prefix_conf_INP=`echo "config.h" | sed -e 's/ *//'`
+if test ".$ac_prefix_conf_INP" = "."; then
+ for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue
+ case "$ac_file" in
+ *.h) ac_prefix_conf_INP=$ac_file ;;
+ *)
+ esac
+ test ".$ac_prefix_conf_INP" != "." && break
+ done
+fi
+if test ".$ac_prefix_conf_INP" = "."; then
+ case "$ac_prefix_conf_OUT" in
+ */*) ac_prefix_conf_INP=`basename "$ac_prefix_conf_OUT"`
+ ;;
+ *-*) ac_prefix_conf_INP=`echo "$ac_prefix_conf_OUT" | sed -e "s/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*-//"`
+ ;;
+ *) ac_prefix_conf_INP=config.h
+ ;;
+ esac
+fi
+if test -z "$ac_prefix_conf_PKG" ; then
+ as_fn_error $? "no prefix for _PREFIX_PKG_CONFIG_H" "$LINENO" 5
+else
+ if test ! -f "$ac_prefix_conf_INP" ; then if test -f "$srcdir/$ac_prefix_conf_INP" ; then
+ ac_prefix_conf_INP="$srcdir/$ac_prefix_conf_INP"
+ fi fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&5
+$as_echo "$as_me: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&6;}
+ if test -f $ac_prefix_conf_INP ; then
+ echo "s/^#undef *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]\\)/#undef $ac_prefix_conf_UPP""_\\1/" > conftest.prefix
+ echo "s/^#undef *\\([abcdefghijklmnopqrstuvwxyz]\\)/#undef $ac_prefix_conf_LOW""_\\1/" >> conftest.prefix
+ echo "s/^#define *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_UPP""_\\1 \\" >> conftest.prefix
+ echo "#define $ac_prefix_conf_UPP""_\\1 \\2 \\" >> conftest.prefix
+ echo "#endif/" >>conftest.prefix
+ echo "s/^#define *\\([abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_LOW""_\\1 \\" >> conftest.prefix
+ echo "#define $ac_prefix_conf_LOW""_\\1 \\2 \\" >> conftest.prefix
+ echo "#endif/" >> conftest.prefix
+ # now executing _script on _DEF input to create _OUT output file
+ echo "#ifndef $ac_prefix_conf_DEF" >$tmp/pconfig.h
+ echo "#define $ac_prefix_conf_DEF 1" >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h
+
+ sed -f conftest.prefix $ac_prefix_conf_INP >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo '/* once:' $ac_prefix_conf_DEF '*/' >>$tmp/pconfig.h
+ echo "#endif" >>$tmp/pconfig.h
+ if cmp -s $ac_prefix_conf_OUT $tmp/pconfig.h 2>/dev/null; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_prefix_conf_OUT is unchanged" >&5
+$as_echo "$as_me: $ac_prefix_conf_OUT is unchanged" >&6;}
+ else
+ ac_dir=`$as_dirname -- "$ac_prefix_conf_OUT" ||
+$as_expr X"$ac_prefix_conf_OUT" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(//\)[^/]' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(//\)$' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_prefix_conf_OUT" |
+ 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
+ rm -f "$ac_prefix_conf_OUT"
+ mv $tmp/pconfig.h "$ac_prefix_conf_OUT"
+ fi
+ cp conftest.prefix _configs.sed
+ else
+ as_fn_error $? "input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" "$LINENO" 5
+ fi
+ rm -f conftest.*
+fi
+ ;;
+ "include/zzip/_msvc.h":C) ac_prefix_conf_OUT=`echo include/zzip/_msvc.h`
+ac_prefix_conf_DEF=`echo _$ac_prefix_conf_OUT | sed -e "y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:" -e "s/[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g"`
+ac_prefix_conf_PKG=`echo zzip`
+ac_prefix_conf_LOW=`echo _$ac_prefix_conf_PKG | sed -e "y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:"`
+ac_prefix_conf_UPP=`echo $ac_prefix_conf_PKG | sed -e "y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:" -e "/^[0123456789]/s/^/_/"`
+ac_prefix_conf_INP=`echo "include/_msvc.in" | sed -e 's/ *//'`
+if test ".$ac_prefix_conf_INP" = "."; then
+ for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue
+ case "$ac_file" in
+ *.h) ac_prefix_conf_INP=$ac_file ;;
+ *)
+ esac
+ test ".$ac_prefix_conf_INP" != "." && break
+ done
+fi
+if test ".$ac_prefix_conf_INP" = "."; then
+ case "$ac_prefix_conf_OUT" in
+ */*) ac_prefix_conf_INP=`basename "$ac_prefix_conf_OUT"`
+ ;;
+ *-*) ac_prefix_conf_INP=`echo "$ac_prefix_conf_OUT" | sed -e "s/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*-//"`
+ ;;
+ *) ac_prefix_conf_INP=config.h
+ ;;
+ esac
+fi
+if test -z "$ac_prefix_conf_PKG" ; then
+ as_fn_error $? "no prefix for _PREFIX_PKG_CONFIG_H" "$LINENO" 5
+else
+ if test ! -f "$ac_prefix_conf_INP" ; then if test -f "$srcdir/$ac_prefix_conf_INP" ; then
+ ac_prefix_conf_INP="$srcdir/$ac_prefix_conf_INP"
+ fi fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&5
+$as_echo "$as_me: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&6;}
+ if test -f $ac_prefix_conf_INP ; then
+ echo "s/^#undef *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]\\)/#undef $ac_prefix_conf_UPP""_\\1/" > conftest.prefix
+ echo "s/^#undef *\\([abcdefghijklmnopqrstuvwxyz]\\)/#undef $ac_prefix_conf_LOW""_\\1/" >> conftest.prefix
+ echo "s/^#define *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_UPP""_\\1 \\" >> conftest.prefix
+ echo "#define $ac_prefix_conf_UPP""_\\1 \\2 \\" >> conftest.prefix
+ echo "#endif/" >>conftest.prefix
+ echo "s/^#define *\\([abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_LOW""_\\1 \\" >> conftest.prefix
+ echo "#define $ac_prefix_conf_LOW""_\\1 \\2 \\" >> conftest.prefix
+ echo "#endif/" >> conftest.prefix
+ # now executing _script on _DEF input to create _OUT output file
+ echo "#ifndef $ac_prefix_conf_DEF" >$tmp/pconfig.h
+ echo "#define $ac_prefix_conf_DEF 1" >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h
+
+ sed -f conftest.prefix $ac_prefix_conf_INP >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo '/* once:' $ac_prefix_conf_DEF '*/' >>$tmp/pconfig.h
+ echo "#endif" >>$tmp/pconfig.h
+ if cmp -s $ac_prefix_conf_OUT $tmp/pconfig.h 2>/dev/null; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_prefix_conf_OUT is unchanged" >&5
+$as_echo "$as_me: $ac_prefix_conf_OUT is unchanged" >&6;}
+ else
+ ac_dir=`$as_dirname -- "$ac_prefix_conf_OUT" ||
+$as_expr X"$ac_prefix_conf_OUT" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(//\)[^/]' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(//\)$' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_prefix_conf_OUT" |
+ 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
+ rm -f "$ac_prefix_conf_OUT"
+ mv $tmp/pconfig.h "$ac_prefix_conf_OUT"
+ fi
+ cp conftest.prefix _configs.sed
+ else
+ as_fn_error $? "input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" "$LINENO" 5
+ fi
+ rm -f conftest.*
+fi
+ ;;
+
+ 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/Build/source/libs/zziplib/configure.ac b/Build/source/libs/zziplib/configure.ac
new file mode 100644
index 00000000000..819ad0bd381
--- /dev/null
+++ b/Build/source/libs/zziplib/configure.ac
@@ -0,0 +1,95 @@
+dnl Process this file with autoconf to produce a configure script.
+dnl
+dnl Copyright (C) 2010-2014 Peter Breitenlohner <tex-live@tug.org>
+dnl
+dnl based on zziplib-0.13.58:
+dnl Copyright (C) 2009 Guido Draheim <guido@gmx.de> for ZZipLib.SF.net
+dnl
+dnl This file is free software; the copyright holder
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+m4_include([version.ac])[] dnl define zziplib_version
+AC_INIT([zziplib (TeX Live)], zziplib_version, [tex-k@tug.org])
+AC_PREREQ([2.65])
+AC_CONFIG_SRCDIR([zziplib-src/zziplib.spec])
+AC_CONFIG_AUX_DIR([../../build-aux])
+AC_CONFIG_MACRO_DIRS([../../m4 m4])
+
+KPSE_BASIC([zziplib])
+
+AC_CANONICAL_HOST
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_RANLIB
+AC_PROG_LN_S
+
+KPSE_COMPILER_VISIBILITY
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_HEADER_DIRENT
+AC_CHECK_HEADERS([stdint.h unistd.h windows.h sys/int_types.h])
+AC_CHECK_HEADERS([winnt.h winbase.h], , , [#include <windows.h>])
+AC_CHECK_HEADERS([sys/types.h sys/mman.h sys/stat.h sys/param.h]) dnl posix'ish
+AC_CHECK_HEADERS([io.h direct.h byteswap.h])
+AC_CHECK_HEADERS([fnmatch.h])
+
+# ---------------------------------------------------------------
+AC_MSG_CHECKING([whether can use mmap for file scanning])
+enable_mmap='no (just a bit slower)'
+test "x$ac_cv_header_winbase_h" = xyes && enable_mmap="yes, winbase.h"
+test "x$ac_cv_header_sys_mman_h" = xyes && enable_mmap="yes, sys/mman.h"
+AS_CASE([$enable_mmap],
+ [yes*], [ZZIPLIB_DEFINES='-D_USE_MMAP'])
+AC_MSG_RESULT([$enable_mmap])
+AC_SUBST([ZZIPLIB_DEFINES])
+
+AC_SYS_LARGEFILE_SENSITIVE
+AC_FUNC_FSEEKO
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_INLINE
+AC_C_CONST
+AC_C_RESTRICT
+AC_TYPE_SIZE_T
+AC_CHECK_TYPE([ssize_t], [int])
+AC_CHECK_TYPE([off64_t], [_zzip_off_t])
+AC_CHECK_TYPE([__int64], [long long])
+AC_CHECK_SIZEOF([short])
+AC_CHECK_SIZEOF([int])
+AC_CHECK_SIZEOF([long])
+AC_C_BIGENDIAN
+ZZIPLIB_CHECK_ALIGNED_ACCESS
+
+# Checks for library functions.
+AC_CHECK_FUNCS([strcasecmp strnlen strndup])
+
+KPSE_ZLIB_FLAGS
+
+AM_CONDITIONAL([build], [test "x$enable_build" != xno])
+
+if test "x$enable_build" != xno || test -f config.force; then
+
+KPSE_ADD_FLAGS([zlib])
+AC_CHECK_HEADERS([zlib.h])
+AC_CHECK_FUNC([zlibVersion], , [AC_ERROR([zlib not found])])
+KPSE_RESTORE_FLAGS
+
+echo timestamp >config.force
+fi
+
+AC_SUBST([ZZIPLIB_TREE], [zziplib-src])
+
+# -----------------------------------------------------------------------
+AC_MSG_RESULT([creating include/zzip/_msvc.in via zzip/_msvc.sed of config.h.in])
+test -d include || mkdir include
+sed -f $srcdir/$ZZIPLIB_TREE/zzip/_msvc.sed $srcdir/config.h.in >include/_msvc.in
+AC_CONFIG_HEADERS([config.h])
+AX_PREFIX_CONFIG_H([include/zzip/_config.h],[zzip],[config.h])
+AX_PREFIX_CONFIG_H([include/zzip/_msvc.h],[zzip],[include/_msvc.in])
+
+AC_CONFIG_FILES([Makefile include/zzip/Makefile])
+
+AC_OUTPUT
diff --git a/Build/source/libs/zziplib/include/zzip/Makefile.am b/Build/source/libs/zziplib/include/zzip/Makefile.am
new file mode 100644
index 00000000000..4ff3b5f447a
--- /dev/null
+++ b/Build/source/libs/zziplib/include/zzip/Makefile.am
@@ -0,0 +1,26 @@
+## Proxy Makefile.am to install zziplib headers for TeX Live.
+##
+## Copyright (C) 2010-2013 Peter Breitenlohner <tex-live@tug.org>
+##
+## This file is free software; the copyright holder
+## gives unlimited permission to copy and/or distribute it,
+## with or without modifications, as long as this notice is preserved.
+##
+ZZIPLIB_SRC = $(top_srcdir)/$(ZZIPLIB_TREE)/zzip
+
+hdr_links = \
+ $(ZZIPLIB_SRC)/autoconf.h \
+ $(ZZIPLIB_SRC)/conf.h \
+ $(ZZIPLIB_SRC)/fetch.h \
+ $(ZZIPLIB_SRC)/file.h \
+ $(ZZIPLIB_SRC)/format.h \
+ $(ZZIPLIB_SRC)/info.h \
+ $(ZZIPLIB_SRC)/lib.h \
+ $(ZZIPLIB_SRC)/plugin.h \
+ $(ZZIPLIB_SRC)/stdint.h \
+ $(ZZIPLIB_SRC)/types.h \
+ $(ZZIPLIB_SRC)/write.h \
+ $(ZZIPLIB_SRC)/zzip.h
+
+include $(top_srcdir)/../../am/hdr_links.am
+
diff --git a/Build/source/libs/zziplib/include/zzip/Makefile.in b/Build/source/libs/zziplib/include/zzip/Makefile.in
new file mode 100644
index 00000000000..3c1eb117404
--- /dev/null
+++ b/Build/source/libs/zziplib/include/zzip/Makefile.in
@@ -0,0 +1,455 @@
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = include/zzip
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \
+ $(top_srcdir)/m4/ax_prefix_config_h.m4 \
+ $(top_srcdir)/m4/zziplib-aligned-access.m4 \
+ $(top_srcdir)/../../m4/kpse-common.m4 \
+ $(top_srcdir)/../../m4/kpse-visibility.m4 \
+ $(top_srcdir)/../../m4/kpse-warnings.m4 \
+ $(top_srcdir)/../../m4/kpse-zlib-flags.m4 \
+ $(top_srcdir)/version.ac $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/../../am/hdr_links.am
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+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@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+ZLIB_DEPEND = @ZLIB_DEPEND@
+ZLIB_INCLUDES = @ZLIB_INCLUDES@
+ZLIB_LIBS = @ZLIB_LIBS@
+ZZIPLIB_DEFINES = @ZZIPLIB_DEFINES@
+ZZIPLIB_TREE = @ZZIPLIB_TREE@
+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@
+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@
+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@
+ZZIPLIB_SRC = $(top_srcdir)/$(ZZIPLIB_TREE)/zzip
+hdr_links = \
+ $(ZZIPLIB_SRC)/autoconf.h \
+ $(ZZIPLIB_SRC)/conf.h \
+ $(ZZIPLIB_SRC)/fetch.h \
+ $(ZZIPLIB_SRC)/file.h \
+ $(ZZIPLIB_SRC)/format.h \
+ $(ZZIPLIB_SRC)/info.h \
+ $(ZZIPLIB_SRC)/lib.h \
+ $(ZZIPLIB_SRC)/plugin.h \
+ $(ZZIPLIB_SRC)/stdint.h \
+ $(ZZIPLIB_SRC)/types.h \
+ $(ZZIPLIB_SRC)/write.h \
+ $(ZZIPLIB_SRC)/zzip.h
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/../../am/hdr_links.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/zzip/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign include/zzip/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+$(top_srcdir)/../../am/hdr_links.am $(am__empty):
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile all-local
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-local
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am all-local check check-am clean clean-generic \
+ cscopelist-am ctags-am distclean distclean-generic \
+ distclean-local distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+all-local:
+ @for file in $(hdr_links); do \
+ test -f $$file || continue; \
+ inst=`echo $$file | sed -e 's/^.*\///'`; \
+ test -f $$inst || { \
+ rm -f $$inst; \
+ if $(AM_V_P); then echo "$(LN_S) $$file $$inst"; \
+ else echo " INST $$inst"; fi; \
+ $(LN_S) $$file $$inst; } || exit 1; \
+ done
+
+distclean-local:
+ rm -f *.h
+
+# 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/Build/source/libs/zziplib/m4/ac_sys_largefile_sensitive.m4 b/Build/source/libs/zziplib/m4/ac_sys_largefile_sensitive.m4
new file mode 100644
index 00000000000..6a296df5278
--- /dev/null
+++ b/Build/source/libs/zziplib/m4/ac_sys_largefile_sensitive.m4
@@ -0,0 +1,46 @@
+dnl @synopsis AC_SYS_LARGEFILE_SENSITIVE
+dnl
+dnl checker whether the current system is sensitive to -Ddefines making
+dnl off_t having different types/sizes. Automatically define a config.h
+dnl symbol LARGEFILE_SENSITIVE if that is the case, otherwise leave
+dnl everything as is.
+dnl
+dnl This macro builds on top of AC_SYS_LARGEFILE to detect whether
+dnl special options are neede to make the code use 64bit off_t - in
+dnl many setups this will also make the code use 64bit off_t
+dnl immediately.
+dnl
+dnl The common use of a LARGEFILE_SENSITIVE config.h-define is to
+dnl rename exported functions, usually adding a 64 to the original
+dnl function name. Such renamings are only needed on systems being both
+dnl (a) 32bit off_t by default and (b) implementing large.file
+dnl extensions (as for unix98).
+dnl
+dnl a renaming section could look like this:
+dnl
+dnl #if defined LARGEFILE_SENSITIVE && _FILE_OFFSET_BITS+0 == 64
+dnl #define zzip_open zzip_open64
+dnl #define zzip_seek zzip_seek64
+dnl #endif
+dnl
+dnl for libraries, it is best to take advantage of the prefix-config.h
+dnl macro, otherwise you want to export a renamed LARGEFILE_SENSITIVE
+dnl in an installed header file. -> see AX_PREFIX_CONFIG_H
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2009-07-27
+dnl @license GPLWithACException
+
+AC_DEFUN([AC_SYS_LARGEFILE_SENSITIVE],[dnl
+AC_REQUIRE([AC_SYS_LARGEFILE])dnl
+# we know about some internals of ac_sys_largefile here...
+AC_MSG_CHECKING(whether system differentiates 64bit off_t by defines)
+ac_cv_sys_largefile_sensitive="no"
+if test ".${ac_cv_sys_file_offset_bits-no}${ac_cv_sys_large_files-no}" != ".nono"
+then ac_cv_sys_largefile_sensitive="yes"
+ AC_DEFINE(LARGEFILE_SENSITIVE, 1,
+ [whether the system defaults to 32bit off_t but can do 64bit when requested])
+fi
+AC_MSG_RESULT([$ac_cv_sys_largefile_sensitive])
+])
diff --git a/Build/source/libs/zziplib/m4/ax_prefix_config_h.m4 b/Build/source/libs/zziplib/m4/ax_prefix_config_h.m4
new file mode 100644
index 00000000000..0aa78602828
--- /dev/null
+++ b/Build/source/libs/zziplib/m4/ax_prefix_config_h.m4
@@ -0,0 +1,181 @@
+dnl @synopsis AX_PREFIX_CONFIG_H [(OUTPUT-HEADER [,PREFIX [,ORIG-HEADER]])]
+dnl
+dnl This is a new variant from ac_prefix_config_ this one will use a
+dnl lowercase-prefix if the config-define was starting with a
+dnl lowercase-char, e.g. "#define const", "#define restrict", or
+dnl "#define off_t", (and this one can live in another directory, e.g.
+dnl testpkg/config.h therefore I decided to move the output-header to
+dnl be the first arg)
+dnl
+dnl takes the usual config.h generated header file; looks for each of
+dnl the generated "#define SOMEDEF" lines, and prefixes the defined
+dnl name (ie. makes it "#define PREFIX_SOMEDEF". The result is written
+dnl to the output config.header file. The PREFIX is converted to
+dnl uppercase for the conversions.
+dnl
+dnl Defaults:
+dnl
+dnl OUTPUT-HEADER = $PACKAGE-config.h
+dnl PREFIX = $PACKAGE
+dnl ORIG-HEADER, from AM_CONFIG_HEADER(config.h)
+dnl
+dnl Your configure.ac script should contain both macros in this order,
+dnl and unlike the earlier variations of this prefix-macro it is okay
+dnl to place the AX_PREFIX_CONFIG_H call before the AC_OUTPUT
+dnl invokation.
+dnl
+dnl Example:
+dnl
+dnl AC_INIT(config.h.in) # config.h.in as created by "autoheader"
+dnl AM_INIT_AUTOMAKE(testpkg, 0.1.1) # makes #undef VERSION and PACKAGE
+dnl AM_CONFIG_HEADER(config.h) # prep config.h from config.h.in
+dnl AX_PREFIX_CONFIG_H(mylib/_config.h) # prep mylib/_config.h from it..
+dnl AC_MEMORY_H # makes "#undef NEED_MEMORY_H"
+dnl AC_C_CONST_H # makes "#undef const"
+dnl AC_OUTPUT(Makefile) # creates the "config.h" now
+dnl # and also mylib/_config.h
+dnl
+dnl if the argument to AX_PREFIX_CONFIG_H would have been omitted then
+dnl the default outputfile would have been called simply
+dnl "testpkg-config.h", but even under the name "mylib/_config.h" it
+dnl contains prefix-defines like
+dnl
+dnl #ifndef TESTPKG_VERSION
+dnl #define TESTPKG_VERSION "0.1.1"
+dnl #endif
+dnl #ifndef TESTPKG_NEED_MEMORY_H
+dnl #define TESTPKG_NEED_MEMORY_H 1
+dnl #endif
+dnl #ifndef _testpkg_const
+dnl #define _testpkg_const _const
+dnl #endif
+dnl
+dnl and this "mylib/_config.h" can be installed along with other
+dnl header-files, which is most convenient when creating a shared
+dnl library (that has some headers) where some functionality is
+dnl dependent on the OS-features detected at compile-time. No need to
+dnl invent some "mylib-confdefs.h.in" manually. :-)
+dnl
+dnl Note that some AC_DEFINEs that end up in the config.h file are
+dnl actually self-referential - e.g. AC_C_INLINE, AC_C_CONST, and the
+dnl AC_TYPE_OFF_T say that they "will define inline|const|off_t if the
+dnl system does not do it by itself". You might want to clean up about
+dnl these - consider an extra mylib/conf.h that reads something like:
+dnl
+dnl #include <mylib/_config.h>
+dnl #ifndef _testpkg_const
+dnl #define _testpkg_const const
+dnl #endif
+dnl
+dnl and then start using _testpkg_const in the header files. That is
+dnl also a good thing to differentiate whether some library-user has
+dnl starting to take up with a different compiler, so perhaps it could
+dnl read something like this:
+dnl
+dnl #ifdef _MSC_VER
+dnl #include <mylib/_msvc.h>
+dnl #else
+dnl #include <mylib/_config.h>
+dnl #endif
+dnl #ifndef _testpkg_const
+dnl #define _testpkg_const const
+dnl #endif
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2003-07-03
+dnl @license GPLWithACException
+AC_DEFUN([AX_PREFIX_CONFIG_H],[dnl
+AC_CONFIG_COMMANDS([ifelse($1,,$PACKAGE-config.h,$1)],[dnl
+AS_VAR_PUSHDEF([_OUT],[ac_prefix_conf_OUT])dnl
+AS_VAR_PUSHDEF([_DEF],[ac_prefix_conf_DEF])dnl
+AS_VAR_PUSHDEF([_PKG],[ac_prefix_conf_PKG])dnl
+AS_VAR_PUSHDEF([_LOW],[ac_prefix_conf_LOW])dnl
+AS_VAR_PUSHDEF([_UPP],[ac_prefix_conf_UPP])dnl
+AS_VAR_PUSHDEF([_INP],[ac_prefix_conf_INP])dnl
+m4_pushdef([_script],[conftest.prefix])dnl
+m4_pushdef([_symbol],[m4_cr_Letters[]m4_cr_digits[]_])dnl
+_OUT=`echo ifelse($1, , $PACKAGE-config.h, $1)`
+_DEF=`echo _$_OUT | sed -e "y:m4_cr_letters:m4_cr_LETTERS[]:" -e "s/@<:@^m4_cr_Letters@:>@/_/g"`
+_PKG=`echo ifelse($2, , $PACKAGE, $2)`
+_LOW=`echo _$_PKG | sed -e "y:m4_cr_LETTERS-:m4_cr_letters[]_:"`
+_UPP=`echo $_PKG | sed -e "y:m4_cr_letters-:m4_cr_LETTERS[]_:" -e "/^@<:@m4_cr_digits@:>@/s/^/_/"`
+_INP=`echo "ifelse($3,,,$3)" | sed -e 's/ *//'`
+if test ".$_INP" = "."; then
+ for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue
+ case "$ac_file" in
+ *.h) _INP=$ac_file ;;
+ *)
+ esac
+ test ".$_INP" != "." && break
+ done
+fi
+if test ".$_INP" = "."; then
+ case "$_OUT" in
+ */*) _INP=`basename "$_OUT"`
+ ;;
+ *-*) _INP=`echo "$_OUT" | sed -e "s/@<:@_symbol@:>@*-//"`
+ ;;
+ *) _INP=config.h
+ ;;
+ esac
+fi
+if test -z "$_PKG" ; then
+ AC_MSG_ERROR([no prefix for _PREFIX_PKG_CONFIG_H])
+else
+ if test ! -f "$_INP" ; then if test -f "$srcdir/$_INP" ; then
+ _INP="$srcdir/$_INP"
+ fi fi
+ AC_MSG_NOTICE(creating $_OUT - prefix $_UPP for $_INP defines)
+ if test -f $_INP ; then
+ echo "s/^@%:@undef *\\(@<:@m4_cr_LETTERS[]_@:>@\\)/@%:@undef $_UPP""_\\1/" > _script
+ echo "s/^@%:@undef *\\(@<:@m4_cr_letters@:>@\\)/@%:@undef $_LOW""_\\1/" >> _script
+ echo "s/^@%:@def[]ine *\\(@<:@m4_cr_LETTERS[]_@:>@@<:@_symbol@:>@*\\)\\(.*\\)/@%:@ifndef $_UPP""_\\1 \\" >> _script
+ echo "@%:@def[]ine $_UPP""_\\1 \\2 \\" >> _script
+ echo "@%:@endif/" >>_script
+ echo "s/^@%:@def[]ine *\\(@<:@m4_cr_letters@:>@@<:@_symbol@:>@*\\)\\(.*\\)/@%:@ifndef $_LOW""_\\1 \\" >> _script
+ echo "@%:@define $_LOW""_\\1 \\2 \\" >> _script
+ echo "@%:@endif/" >> _script
+ # now executing _script on _DEF input to create _OUT output file
+ echo "@%:@ifndef $_DEF" >$tmp/pconfig.h
+ echo "@%:@def[]ine $_DEF 1" >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo /'*' $_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h
+
+ sed -f _script $_INP >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo '/* once:' $_DEF '*/' >>$tmp/pconfig.h
+ echo "@%:@endif" >>$tmp/pconfig.h
+ if cmp -s $_OUT $tmp/pconfig.h 2>/dev/null; then
+ AC_MSG_NOTICE([$_OUT is unchanged])
+ else
+ ac_dir=`AS_DIRNAME(["$_OUT"])`
+ AS_MKDIR_P(["$ac_dir"])
+ rm -f "$_OUT"
+ mv $tmp/pconfig.h "$_OUT"
+ fi
+ cp _script _configs.sed
+ else
+ AC_MSG_ERROR([input file $_INP does not exist - skip generating $_OUT])
+ fi
+ rm -f conftest.*
+fi
+m4_popdef([_symbol])dnl
+m4_popdef([_script])dnl
+AS_VAR_POPDEF([_INP])dnl
+AS_VAR_POPDEF([_UPP])dnl
+AS_VAR_POPDEF([_LOW])dnl
+AS_VAR_POPDEF([_PKG])dnl
+AS_VAR_POPDEF([_DEF])dnl
+AS_VAR_POPDEF([_OUT])dnl
+],[PACKAGE="$PACKAGE"])])
+
+dnl implementation note: a bug report (31.5.2005) from Marten Svantesson points
+dnl out a problem where `echo "\1"` results in a Control-A. The unix standard
+dnl http://www.opengroup.org/onlinepubs/000095399/utilities/echo.html
+dnl defines all backslash-sequences to be inherently non-portable asking
+dnl for replacement mit printf. Some old systems had problems with that
+dnl one either. However, the latest libtool (!) release does export an $ECHO
+dnl (and $echo) that does the right thing - just one question is left: what
+dnl was the first version to have it? Is it greater 2.58 ?
+
diff --git a/Build/source/libs/zziplib/m4/zziplib-aligned-access.m4 b/Build/source/libs/zziplib/m4/zziplib-aligned-access.m4
new file mode 100644
index 00000000000..c1598a6083e
--- /dev/null
+++ b/Build/source/libs/zziplib/m4/zziplib-aligned-access.m4
@@ -0,0 +1,43 @@
+# Autoconf macros for zziplib.
+# Copyright (C) 2006, 2009 Guido U. Draheim <guidod@gmx.de>
+# Copyright (C) 2010 Peter Breitenlohner <tex-live@tug.org>
+#
+# This file is free software; the copyright holders
+# give unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# While the x86 CPUs allow access to memory objects to be unaligned
+# it happens that most of the modern designs require objects to be
+# aligned - or they will fail with a buserror. That mode is quite known
+# by big-endian machines (sparc, etc) however the alpha cpu is little-
+# endian.
+
+AC_DEFUN([ZZIPLIB_CHECK_ALIGNED_ACCESS],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_CACHE_CHECK([if pointers to integers require aligned access],
+ [zziplib_cv_aligned_access],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <stdio.h>
+#include <stdlib.h>]],
+ [[
+char* string = malloc(40);
+int i;
+for (i=0; i < 40; i++) string[i] = i;
+{
+ void* s = string;
+ int* p = s+1;
+ int* q = s+2;
+ if (*p == *q) { return 1; }
+}]])],
+ [zziplib_cv_aligned_access=no],
+ [zziplib_cv_aligned_access=yes],
+ [AS_CASE([$host_cpu],
+ [alpha*|arm*|bfin*|hp*|mips*|sh*|sparc*|ia64|nv1],
+ [zziplib_cv_aligned_access=yes],
+ [zziplib_cv_aligned_access=no])])])
+if test "x$zziplib_cv_aligned_access" = xyes ; then
+ AC_DEFINE([HAVE_ALIGNED_ACCESS_REQUIRED], 1,
+ [Define if pointers to integers require aligned access])
+fi
+]) # ZZIPLIB_CHECK_ALIGNED_ACCESS
+
diff --git a/Build/source/libs/zziplib/version.ac b/Build/source/libs/zziplib/version.ac
new file mode 100644
index 00000000000..cad8ee1c5d4
--- /dev/null
+++ b/Build/source/libs/zziplib/version.ac
@@ -0,0 +1,11 @@
+dnl
+dnl Copyright (C) 2012 Peter Breitenlohner <tex-live@tug.org>
+dnl
+dnl This file is free software; the copyright holder
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl --------------------------------------------------------
+dnl
+dnl m4-include this file to define the current zziplib version
+m4_define([zziplib_version], [0.13.71])
diff --git a/Build/source/libs/zziplib/zziplib-src/CMakeLists.txt b/Build/source/libs/zziplib/zziplib-src/CMakeLists.txt
new file mode 100644
index 00000000000..83b39d68b1f
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/CMakeLists.txt
@@ -0,0 +1,47 @@
+cmake_minimum_required (VERSION 3.1)
+project(zziplib VERSION "0.13.71" LANGUAGES C)
+
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE Release)
+endif(NOT CMAKE_BUILD_TYPE)
+
+### Path to additional CMake modules
+# set(CMAKE_MODULE_PATH
+# ${CMAKE_SOURCE_DIR}/cmake
+# ${CMAKE_MODULE_PATH})
+
+include ( GNUInstallDirs )
+
+option(BUILD_SHARED_LIBS "Build a shared library" ON)
+option(BUILD_STATIC_LIBS "Build the static library" OFF)
+option(BUILD_TESTS "Build test programs" OFF)
+option(MSVC_STATIC_RUNTIME "Build with static runtime libs (/MT)" ON)
+option(ZZIPMMAPPED "Build libzzipmmapped (not fully portable)" ON)
+option(ZZIPFSEEKO "Build libzzipfseeko (based on posix.1 api)" ON)
+option(ZZIPWRAP "Build libzzipwrap (non-installed example)" ON)
+option(ZZIPSDL "Build zzcatsdl (includable example code)" ON)
+option(ZZIPBINS "Build bins/unzzip (unzip-like executables)" ON)
+option(ZZIPTEST "Build test/zzipself (self-extract example)" ON)
+option(ZZIPDOCS "Build docs/manpages (and website content)" ON)
+
+add_subdirectory(zzip)
+
+if(ZZIPWRAP)
+add_subdirectory(zzipwrap)
+endif()
+
+if(ZZIPSDL)
+add_subdirectory(SDL)
+endif()
+
+if(ZZIPBINS)
+add_subdirectory(bins)
+endif()
+
+if(ZZIPTEST)
+add_subdirectory(test)
+endif()
+
+if(ZZIPDOCS)
+add_subdirectory(docs)
+endif()
diff --git a/Build/source/libs/zziplib/zziplib-src/CMakeScripts/JoinPaths.cmake b/Build/source/libs/zziplib/zziplib-src/CMakeScripts/JoinPaths.cmake
new file mode 100644
index 00000000000..10d5ba680e6
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/CMakeScripts/JoinPaths.cmake
@@ -0,0 +1,23 @@
+# This module provides function for joining paths
+# known from from most languages
+#
+# SPDX-License-Identifier: (MIT OR CC0-1.0)
+# Copyright 2020 Jan Tojnar
+# https://github.com/jtojnar/cmake-snips
+#
+# Modelled after Python’s os.path.join
+# https://docs.python.org/3.7/library/os.path.html#os.path.join
+# Windows not supported
+function(join_paths joined_path first_path_segment)
+ set(temp_path "${first_path_segment}")
+ foreach(current_segment IN LISTS ARGN)
+ if(NOT ("${current_segment}" STREQUAL ""))
+ if(IS_ABSOLUTE "${current_segment}")
+ set(temp_path "${current_segment}")
+ else()
+ set(temp_path "${temp_path}/${current_segment}")
+ endif()
+ endif()
+ endforeach()
+ set(${joined_path} "${temp_path}" PARENT_SCOPE)
+endfunction()
diff --git a/Build/source/libs/zziplib/zziplib-src/COPYING.LIB b/Build/source/libs/zziplib/zziplib-src/COPYING.LIB
new file mode 100644
index 00000000000..eb685a5ec98
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/COPYING.LIB
@@ -0,0 +1,481 @@
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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.
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/Build/source/libs/zziplib/zziplib-src/ChangeLog b/Build/source/libs/zziplib/zziplib-src/ChangeLog
new file mode 100644
index 00000000000..61e75e1a239
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/ChangeLog
@@ -0,0 +1,1636 @@
+2020-04-14 gdraheim@github
+ * The testbuilds allow to compile and test for different os via docker
+ * The testbuilds allow to compare new cmake to automake install results
+ * Found fixes to bring base, sdl, manpages and site docs to same level
+ * release 0.13.71
+
+2020-04-14 gdraheim@github
+ * there have been tons of bugfixes over the last two years ...
+ * Thanks go to Patrick Steinhardt (then at Aservo) for python3 updates
+ * Thanks go to Josef Moellers (working at SUSE Labs) for many CVE fixes
+ * and of course all the other patches that came in via github issues.
+ * I have cleaned up sources to only uses Python3 (as needed by 2020).
+ * !!! The old automake/autconf/libtool system will be dumped soon!!!
+ * The build system was ported to 'cmake' .. (last tested cmake 3.10.2)
+ * release 0.13.70
+
+2018-03-15 guidod <guidod@gmx.de>
+ * fix a number of CVEs reported with special *.zip PoC files
+ * man-pages are generated with new dbk2man.py - docbook xmlto is optional now
+ * completing some doc strings while checking the new man-pages to look good
+ * allow the zziptests.py testsuite to run with an installed /bin path
+ * try to fix some issues on testing with non-installed binaries on non-linux platfors
+ * update autotools to allow compiling on some newer Mac / Win machines
+ * a zip-program is still required for testing, but some errors are gone when not there
+ * complete the approximation of fnmatch for the test binaries (on platforms without)
+ * allow windows __mmap.h to be simpler, helping with some problems on MingW
+ * integrate 'fopen("wb")' from TexLive to be more portable across
+ * more portability as well for helpers like strnlen being used in the sources
+ * update doc refs to point to github instead of sf.net
+ * update the sf.net pages to have a prominent hint on newer github.com location
+ * release v0.13.69
+
+2018-02-02 guidod <guidod@gmx.de>
+ * fix a number of CVEs reported with special *.zip files
+ * the testsuite has been expanded to cover all the CVEs
+ * some minor doc updates referencing GitHub instead of sf.net
+ * release v0.13.68
+
+2017-06-11 guidod <guidod@gmx.de>
+ * fix portability issues by introducing <zzip/__errno.h>
+ * fix portability issues by introducing <zzip/__mkdir.h>
+ * fix portability issues by introducing <zzip/__string.h> for strndup
+ * reuse portability header <zzip/__fnmatch.h> in bins/*.c
+ * release v0.13.67
+
+2017-04-24 guidod <guidod@gmx.de>
+ * common frontend 'unzzip.c' for example code in unzzip*-xx.c
+ * expand testcases to cover all of big/mem/mix/zap variants
+ * release v0.13.66
+
+2017-04-23 guidod <guidod@gmx.de>
+ * turn the testsuite from makefile into python unittest format
+ * extend 'make check' testsuite to cover non-libzzip extensions
+ * fix unzzipcat-seeko and unzzipcat-mem to match the testsuite
+ * release v0.13.65
+
+2017-04-20 guidod <guidod@gmx.de>
+ * check patches in opensuse builds, mostly for some CVE reports
+
+2012-09-15 guidod <guidod@gmx.de>
+ * zzip.h, plugin.h: "};" at end of extern-C produces build errors with
+ the default --pedantic-errors on newer CMake. Thanks to Keith Thompson
+ recognizing it - see http://stackoverflow.com/questions/12384280/
+
+2012-03-11 guidod <guidod@gmx.de>
+
+ * configure.ac: fallback to libtool -export-dynamic unless being sure to
+ use gnu-ld --export-dynamic. The darwin case is a bit special here
+ as the c-compiler and linker might be from different worlds.
+ * next 0.13.62 - needs a fix for mingw
+ (-mconsole is not a linker option, only the gcc should see it)
+
+2010-12-30 guidod <guidod@gmx.de>
+ * done 0.13.60 release, tagged, and announced.
+ * prepare 0.13.61
+
+2010-12-29 guidod <guidod@gmx.de>
+ * Makefile.am: allow nonstaic build
+ * wrap fd.open like in the Fedora patch
+
+2010-12-28 guidod <guidod@gmx.de>
+ * zziplib.spec - simplify the spec based on distro specs.
+
+2010-12-27 guidod <guidod@gmx.de>
+ * adding fetch.h/fetch.c to msvc8/zziplib.vcproj to allow
+ tests with Visual Studio C++ Express 2005
+
+2010-12-27 guidod <guidod@gmx.de>
+ * fix stat.c to check ZZIP_CASELESS instead of the deprecated
+ ZZIP_CASEINSENSITIVE. The latter is still recognized for
+ compatibility reasons and implicitly mapped to ZZIP_CASELESS.
+ * fixes the zziplib-Patches-3078188 which reported the bug.
+
+2010-12-27 guidod <guidod@gmx.de>
+ * apply patches by Peter Breitenlohner for better compatibility
+ with AIX host system. Also the Sun Studio compiler insists on
+ static inline functions or else assumes extern inline.
+ * also fixes zziplib-Patches-3011551 on the AIX problem.
+
+2010-12-27 guidod <guidod@gmx.de>
+ * add hints that the ext_io plugin handlers should be static.
+
+2010-05-09 guidod <guidod@gmx.de>
+
+ * zzip/__fnmatch.h: add include <string.h> to make mingw32 happy.
+ Patches item #2995373 by Gregory Smith
+
+2010-05-08 guidod <guidod@gmx.de>
+
+ * SDL/Makefile.am: fix generation of sdl-uninstalled.pc that was
+ not recognized during compilation.
+
+2010-04-05 guidod <guidod@gmx.de>
+
+ * Makefile.am: fix "osc rm" and fix "test-sdl" if SDL was not found.
+ * configure.ac: SDL example builds on pkgconfig/sdl.pc which
+
+ was introduced with SDL 1.2.11 - CentOs5 ships 1.2.10 which
+ does only have "sdl-config" and it made for a mismatch in
+ in the build configuration: sdl-devel yes, pkgconfig sdl no.
+ * zzip/zip.c (__zzip_parse_root_directory): move the check for
+ zzip_disk_entry_check_magic to be after the the check that
+ the seek-value is more than a header's size before the end.
+ (based on a segfault report by Tulipánt Gergely when the
+ new modulo_entries code is enabled (which is off by default))
+
+2010-03-30 guidod <guidod@gmx.de>
+
+ * zzip/Makefile.am: fixing symlinks for lib* - use only for Linux
+ Thanks to Ryan Schmidt (macports):
+ ... likes to install some symlinks that don't make sense on Mac OS X:
+ $ ls -l /opt/local/lib/*zzip*so*
+ lrwxr-xr-x /opt/local/lib/libzzip*.so.10 -> libzzip*.so.13
+ lrwxr-xr-x /opt/local/lib/libzzip*.so.11 -> libzzip*.so.13
+ lrwxr-xr-x /opt/local/lib/libzzip*.so.12 -> libzzip*.so.13
+ Yes, the filenames literally contain an asterisk.
+
+ * prepare 0.13.60
+
+2010-03-29 guidod <guidod@gmx.de>
+
+ * Makefile.am: change osc to new home:guidod:zziplib-13
+ * configure.ac: update to autoconf 2.61 which does some things differently
+ * m4/ax_pax_tar.m4: bug report http://trac.macports.org/ticket/24227
+ showed a problem on MacOsX where some "pax" tools where advertising
+ an "-O" option in their "--help" page but it did not work. Therefore
+ rewriting the macro to actually test some "-w -O" to create a tarfile.
+
+2010-03-26 guidod <guidod@gmx.de>
+
+ * zzip/dir.c: and zzip/file.c - adding comments to the compat32
+ functions such that they appear near their off_t variants.
+ Also added the ifdef-EOVERFLOW check that is needed on Win32.
+
+2010-03-25 guidod <guidod@gmx.de>
+
+ * Makefile.mk: add "-I m4" and re-autoconf with newest autotools.
+ * zzip/zzip32.h: introducing compat32 functions that take "long"
+ arguments where the others use "off_t". Basically, there are
+ two calls per each off_t-function on all systems where
+ previously that had been only done for those 64on32 systems.
+ This scheme maximized binary compatibility - if an application
+ can not be compiled with _LARGEFILE_SOURCE then they can use
+ the compat32 variants to be always sure to do the right thing.
+
+2010-02-15 guidod <guidod@gmx.de>
+
+ * zzip/Makefile.am: newest "install" does not like to install fetch.h
+ three times ("...not overwite... it just installed")
+ * Makefile.am: allow to build locally with "osc" (opensuse buildservice)
+
+2010-02-14 guidod <guidod@gmx.de>
+
+ * zzip/Makefile.am: use install-*-hook instead of install-*-local
+ * docs/Makefile.am: PYTHONDONTWRITEBYTECODE=1 to ensure running
+ python with a read-only source code repository (dynamic workspaces)
+ NOTE: python -B was introduced with Python 2.6 (so use environment)
+ * zzip/plugin.c: missing "void"
+ again thanks to Peter Breitenlohner (tex-live tug org)
+ * test/Makefile.am: build-zips outside of source tree
+ * m4/ax_prefix_config_h.m4: reduce error to warning as suggested
+ * m4/ax_check_aligned_access_required.m4: merging with derived
+ macro zziplib-aligned-access.m4 by Peter Breitenlohner
+
+
+2009-09-24 guidod <guidod@gmx.de>
+ * zziplib.spec: prepare 0.13.59
+ * configure.ac: add --with-defines to allow compile-definitions
+ for easy,harden,allow_modulo_entries (also for documentation)
+ * zzip/zip.c: add ZZIP_EASY to disable the ZZIP_CORRECT_ROOTSEEK
+ feature
+ * zzip/zip.c (__zzip_parse_root_directory): add parenthesis to fix
+ ZZIP_ALLOW_MODULO_ENTRIES (as reported by Tulipánt Gergely)
+ * zzip/fetch.h: add MSVC defines for x86/x64 that allows direct access
+
+2009-08-23 guidod <guidod@gmx.de>
+
+ * Makefile.mk: remove some old stuff related to the compilefarm
+ * zziplib.spec: prepare 0.13.58
+ * add ports/symbian-S60/zziplib-symbian.zip (thanks to Rangel Reale)
+ * switch from CVS to SVN (!!!!) and update some docs/*.htm files
+ * zzip/mmapped.c (zzip_disk_mmap): compile error on win32-mingw [1771707]
+
+2009-08-16 guidod <guidod@gmx.de>
+
+ * configure.ac: reorder ax_gcc_flags as the extra options were
+ disabled (do not know why) and add -Wstrict-aliasing to the set.
+ Then fix issues in source files (mostly signed-comparision warnings)
+ * zzip/file.c (zzip_file_open): ZZIP_CASELESS will include a
+ mapping of "\" into "/" to get away with windows-orientied
+ programs. The backslash however is only active for those
+ windows' binaries. Fixes an issue with non-msvc win32-builds.
+
+2009-08-04 guidod <guidod@gmx.de>
+
+ * m4/ac_sys_largefile_sensitive.m4: update, fixes ticket:2825391
+ * zzip/mmapped.h: zzip/memdisk.h: replace buflen argument
+ from "int" to "size_t" type for init from some mem area.
+
+2009-08-03 guidod <guidod@gmx.de>
+
+ * zziplib.spec: prepare 0.13.57
+ * bins/zziptest.c: redefine to win32-Sleep() when seen WINDOWS_H
+ which allows it to compile also with a gcc/mingw/msvcrt target
+ * bins/Makefile.am: ZZIP_LDFLAGS are not needed for *.exe targets
+ in fact they make for problems in crosscompiling without libtool
+ * zzip/fseeko.c: typo "fseeko" -> "fseek" made for a compile error
+ on systems that do not have fseeko like windows msvcrt
+ (reported by Josh Heidenreich)
+
+2009-07-03 guidod <guidod@gmx.de>
+
+ * zzip/mmapped.c: insert zzip_disk_buffer and
+ * zzip/memdisk.c: zzip_mem_disk_buffer where both functions
+ will actually wrap an external buffer (e.g. mmapped from
+ another resource such as shared memory).
+ * zzip/mmapped.c and zzip/mmapped.h: uncovered a bug for the
+ MATCH_NOCASE handling and WRAPPED_BUFFER handling that is
+ now handled by explicit ->flags values. The actual flag
+ values are now exported to the header instead of just using
+ a simple "1".
+ * ideas for zzip_disk_buffer / zzip_mem_disk_buffer sprang from
+ a proposal by JP Dai [Goldleaf] who offerd very similar code.
+
+2009-06-27 guidod <guidod@gmx.de>
+
+ * zziplib.spec: 0.13.56 - and make build.opensuse.org happy by
+ removing the %if/%endif sections. (it seems one buildserver
+ script understands it while the other don't - and effectivly
+ all variants fail if it is left in. Hopefully no other platforms
+ have problems with the additional buildrequires that are put here)
+ * zzip/mmapped.c (zzip_disk_new): malloc(sizof()) was errornously
+ using a pointer instead of ZZIP_DISK. Not part of libzzip but
+ of the extra library libzzipmmapped that is in-memory-only.
+ (problem reported and solution shown by JP Dai [Goldleaf])
+ * configure.ac: disable search for python2.2 (gentoo bug 275247+174189)
+
+2009-06-22 guidod <guidod@gmx.de>
+ * zziplib.spec: 0.13.55 and integrate patches for build.opensuse.org
+ * zzip/zip.c (__zzip_parse_root_directory): rework parse_directory
+ to allow for ZZIP_ALLOW_MODULO_ENTRIES version as required for
+ some cases where more than 65535 entries are packed into a
+ non-ZIP64 archive. The modulo_entries variant is disabled by
+ default but the know for the problem space was put into code to
+ check for two more error conditions and report them in debug mode.
+ (problem space was described carefully by Tulipánt Gergely and
+ the provided patch was a good foundation for the ifdef code)
+ * configure.ac: use $can_build_shared from linker-config to allow
+ build on platforms that do not support a shared library concept
+ or where it is disabled (the commandline switch overrides it?)
+ (should fix the SF bug ID 2796485 reported by Giovanni Bechis)
+ * zzip/file.c: errornous usage of currentfp before setting it to
+ the new fp value in zzip_seek(). In the good case it would seek
+ on the wrong file and in the bad case it goes off on sigbus/NPE.
+ The problem occurs only if two+ zips are accessed simultaneously.
+ (problem reported and patch kindly provided by Evgeniy Muhin)
+ * docs/Makefile.am: fixup for newer xmlto may be to generate
+ a subdirectory "man3" inside of our output directory "man3"
+ and gard against usage of man3/man3 for the tarball unpacking.
+ (problem reported by Liu Qi [debian package maintainer])
+ * zzip/__hints.h: add else-part for ZZIP_GNUC_PACKED
+ (makes for problems with MSVC as reported by Denny Kunker)
+
+2009-05-24 guidod <guidod@gmx.de>
+ * zzip/fetch.c - remove SET/GET fetch definitions that already
+ exist in zzip/fetch.h where they have been corrected lately.
+ * docs/Makefile.am - change from install-sf via shell.sf.net to
+ upload-sourceforge via web.sf.net - and alias to "www" shorthand
+ * docs/referentials.htm - fix typo.
+ * 0.13.54
+
+2009-05-23 guidod <guidod@gmx.de>
+ * SDL/Makefile.am - remove dependency on zzip-config (and sdl-config)
+ which do not exist any since quite a time - instead use pkg-config
+ > Thanks to Michael Sterret for bringing it up
+ * SDL/SDL_rwops_zzcat.c: the SDL_rwops example was fixed, as the
+ nmemb/size of the sdl-read call were swapped over. The testsdl
+ self check (based on zzcatsdl) works OK.
+ * SDL/Makefile.am - the targe installation paths for the example
+ was fixed to include/SDL_rwops_zzip - additionally there is now
+ an SDL_rwops_zzip.pc pkgconfig script that will refer to the new
+ location (it had been previously installed in include/SDL, ouch).
+ * Note that the old zzip-sdl pkgconfig-files are gone now. Given that the
+ example was not quite working, it is improbable that anyone had
+ been using them in real code, so there's nothing breaking here.
+ * create a new package SDL_rwops-devel in zziplib.spec that will catch
+ the example code, SDL_rwops_zzip includes and SDL_rwops_zzip pkgconfig
+ * append "make check" and "make test-sdl" to zziplib.spec for minimal
+ pre-installation check.
+ * Makefile.am: fix zzip-postinstall
+ * zziplib.spec: specifiy %version for the Provides:-clauses
+ * configure.ac: do not let autoconfigured LDFLAGS/LIBS bleed into zziplib.pc
+ * zip.c: ensure that the zzip64_trailer entries is being used and that the
+ parse_root_directory function honours the full 64bit in the "entries" counter
+ (rejecting the patch from Tulipánt Gergely which would allow to get away with
+ non-standard zip archives that do use a normal zzip_trailer with a 16bit entries
+ counter that happens to store only the modulo value of the real entries in the
+ archive - zippers should fail beyond 65535 entries or switch to the ZIP64 format).
+ * docs/referentials.htm - include reference to http://www.ogre3d.org/
+ * zzip/fseeko.c: check some more return values from fseeko/fread calls.
+ * 0.13.53
+
+2009-05-22 guidod <guidod@gmx.de>
+ * docs/Makefile.am: break a dual target into two lines as
+ suggested by ticket:2405440
+ * m4/ax_cflags_no_writable_strings.m4 update with sed-call
+ suggested by ticket:2155649
+ * m4/ax_check_aligned_access_required.m4 update for the cross_compiling
+ case with libpcap-list of host_cpu targets thare require aligned access
+ suggested by ticket:2479788
+ * introduce ax_pax_tar.m4 to use *.tar format for manpages.tar (instead of .ar)
+ * 0.13.52
+
+2009-05-21 guidod <guidod@gmx.de>
+
+ * docs/Makefile.am: make install-docs install-man3 rules so that
+ a failing "ar x" (on OpenBSD/vax) will not kill the whole
+ configure / make / make install cycle. However it simply
+ means that there will be no manpages on such platforms.
+ May be OpenBSD/vax has a "gar" (gnu ar) installed somewhere?
+ * closes Patches item #2716806, was opened at 2009-03-27 13:01
+ * 0.13.51
+
+2009-05-21 guidod <guidod@gmx.de>
+ * zzip/fetch.h: ensure that either direct-bswap or direc-deref is only used
+ on platforms that do not require aligned memory access. The
+ latest report from Sylvain Beucler has shown an error a MIPS
+ platform (named http://www.freedink.org/ running on PSP).
+ * zzip/fetch.h: replace _zzip_attribute(const) with defines from zzip/__hints.h
+ * zzip/__hints.h: introduced ZZIP_GNUC_PACKED for __attribute__((packed))
+ * zzip/format.h: replace _zzip_attribute(packed) with defines from zzip/__hints.h
+ * zzip/conf.h: remove _zzip_attribute - not needed anymore.
+
+2008-12-27 guidod <guidod@pc3>
+ * ax_create_pkgconfig_info needs a definition for datarootdir (introduced
+ in latest autoconf/automake making for an error in ogre3d configuration
+ as reported by Ignaz Forster)
+ * release 0.13.50
+
+2008-12-24 guidod <guidod@pc3>
+ * add the dir-zzip-* to the cvs repo (as used on some webs)
+ * move "make rpm" to *.am (instead of *.mk)
+ * amd64 should be in libdir=$prefix/lib64 (in the spec file)
+
+2008-11-24 guidod <guidod@pc3>
+ * BuildRequires: python (for %package doc)
+
+
+2008-03-22 guidod <guidod@pc3>
+
+ * zzip/fetch.h: honor ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED for the Linux bswap
+ optimization. See also 443880@bugs.debian "SIGBUS on Sparc".
+
+2008-03-03 guidod <guidod@pc3>
+
+ * TODO: update to recent problems. Need to check my mail stack next time.
+
+2008-03-02 guidod <guidod@pc3>
+
+ * zzip/info.c: reverted.
+ * also: note that the Makefiles have been update to the newest autotools.
+ The project itself has been imported to an Eclipse based CDT project.
+
+2007-03-19
+ * enforce indent by automatic indentic-check
+
+2007-03-17
+ * http://www.securitylab.ru/forum/read.php?FID=21&TID=40858&MID=326187
+ zziplib vulnerability due to usage of strcpy
+ * add indent-check for enforcing some source code style.
+
+2007-02-01
+ * remake manpages.ar / htmpages.ar - redistribute zziplib-manpages.ar
+ instead while the rebuild mechanics become a lot simpler
+ * unless --maintainer-mode, make mans / install-mans part of the default
+
+2007-01-31
+ * applying patches from Mike Frysinger
+ * consider making the manpage install target part of the default
+ `make install` rather than a sep install-man3 target ? (from Mike)
+ * Michael Sterret reports, that the SDL/* example requires zzip-config
+ instead of the pkgconfig stuff - actually, the whole part should be
+ give a makeover as newer SDL does install its own sdl.pc which makes
+ the current local generation of zzip-sdl-config.pc a real mess.
+
+2006-09-27
+ * adding docs/zip-php.htm integrating Chris Branch's mail into the docs
+ * appending docs/changes.htm rule from ./ChangeLog
+
+2006-09-26
+ * adding docs/notes.htm - to register some old dicussions for later
+ reference. Let's see how that fills up.
+
+2006-09-21
+ * last doc/*.py updates
+ * last doc/mksite.* updates
+ * last doc/body.htm updates - including new zzipmmapped.html docu
+ * "make install-sf" will copy the doctree directly to sourceforge
+
+2006-09-18
+ * docs/makedocs.py docs/zzipdoc/*.py creates new docs/zziplib-man3.tar.gz
+ plus zziplib.html zzipmmapped.html zzipfseeko.html
+ * that will be the only to be used in the future but it is not complete
+
+2006-08-18
+ * updating msvc8 project files
+ * adding zlib.dll to cvs
+ * zzip/memdisk.c:183 overrides for off64_t will not work with off32_t !!!
+ * headers for mktime should return time_t - do we have the header ???
+
+2006-08-17
+ * A report by Tuilipant Gergely had shown an "unaligned access"
+ error on an alpha machine. So, I have added macro to test for
+ the condition of aligned access but the alpha platoform seems
+ to be okay. Further reports are required.
+ * Mark README.SDL to be explicitly outdated (it's 16. Dec. 2002)
+
+2008-08-14
+ * Yvan Phelizot reports a problem in zzip/mmapped.c
+ * Malcom MacLeod had spurious problems inside a C++ project,
+ so let's update all heraders with explicit 'extern "C"' linkage.
+
+2006-08-08
+ * rephrase build system, automated tests, some doc parts
+
+2006-04-28
+ * bsd/mac needs sys/types.h for size_t
+
+2005-12-11
+ * there have been reports about multithreading problems
+ * one source of problems: access to the dir->cache members.
+ fixed by using an explicit semaphore variable, otherwise
+ just allocate/deallocate the buffer / filehandle
+ * second source of problems: the zip file is opened _and_ read
+ with only one filehandle for multiple threads that
+ share the same "dir" handle. Look for "->currentfp".
+ * that is not fixed away - while access to the cache variables
+ can continue in the case of a "locked" state that is not
+ possible for open/reads. In the "locked" case the thread
+ must be blocked but that is a system-specific call.
+ * there are two ways to fix it - (a) push down the sysfile to
+ each zzip_file by "dup(2)"licating the sysfile handle.
+ However zzip looses a feature that was helping a lot on
+ system with a low number of sysfile hands (e.g. dos and
+ some embedded operating systems that I did work with).
+ and (b) provide an indirect ->lock() call that can be
+ filled by the caller application upon zzip invokation,
+ perhaps add it to the io-plugin structure. Well (c) is
+ it possible to support both styles? Dynamically?
+
+2005-12-10
+ * testing on sourceforge compilefarm - including "make check"
+ * there was an error on bsd'ish systems (implicit 64on32)
+ which was caused by archaic CORRECT_ROOTSEEK code
+ being still present. Remove it?
+
+2005-12-09
+ * testing with Microsoft Visual Studio 2005 (msvc8) Express Edition
+ * fixing some compilation problems related to zip64 support in win32
+
+2005-12-08
+ * cut acinclude.m4 into separated aclocal macros in m4/ subdirectory
+
+2005-10-14
+ * testing on sourceforge compilefarm, cleaning away any compiler warnings
+ i386-debian2.2 i386-freebsd4.8
+ amd64-fedora3 alpha-debian3.0
+ sparc-solaris8 powerpc-macos10.2
+ * note, the build system has some quirks but not yet renovated to the
+ newest autoconf/automake stuff anyway - TBD before final release
+
+2005-10-13
+ * MSVC7 knows the following __declspec attributes:
+ align(#), allocate("seg"), deprecated, dllexport, dllimport,
+ naked{for asm}, noinline, noreturn, nothrow, novtable,
+ property{MngC++}, selectany{common}, thread{tls}, uuid("name")
+ * introduce zzip__new__ for a restrict'ed return item
+ * introduce zzip_byte_t to help silence down compiler warnings
+ about signedness mismatch in assigning data buffer variables.
+ Especially the zlib data_in happens to be of unsigned char type.
+ * note that zzip/format.h does now use zzip_byte_t for layout definition
+
+2005-02-17
+ * adding that _GNU_SOURCE on __linux__ to get the strndup prototype
+ * cleaning a few warning messages on different platforms as well
+ as a bug for 64bit platforms
+ * updating docs/mksite.sh and adding docs/mksite.pl and going to
+ let VERSION be pasted directly instead of a makefile snippet
+ * adding docs/memdisk.htm documentation to the series which is
+ currently quite shallow.
+ * note: no tests for actual zip64 support are made, neither for a
+ large central directory (more than 64K files) nor for large
+ files (more than 2GB). This is all theoretic but I am quite
+ confident that it will work.
+
+2005-02-16
+ * change zzip/zip disk_trailer implementation
+ * we do not anymore pass a copy of the file block around
+ * we do use a local helper structure now with off_t fields
+ * the parse_root_directory is now using off_t for all computatations
+ * make check succeeds - beware, this is a new implementation
+ * RANT: glibc bastards make for additinal warning messages, the fseeko
+ prototype is not exported by default, but as soon as we add some
+ define to make it available, some other prototypes are disabled,
+ including one of the most widespread: strndup(). The documentation
+ even says we have to say GNU to get prototype - if you have ever heard
+ of unix to diverge into something not quite but be alike, here it is,
+ what compiles on most platforms gives a warning on linux even that it
+ works fine afterwards because the libc does export all we need and
+ autoconf does find it - it is just not prototyped and that's all.
+
+2005-02-15
+ * adding zzip/memdisk.* as cache variant for libzzipfseeko
+ * add macro support for zip64 extensions
+ * extend trailer routines with zip64 detection (and return 0)
+ * add memdisk bins
+
+2005-01-04
+ * remember TODO multithreading tests and hardening the code.
+ http://www.idefense.com/application/poi/display?id=153&type=vulnerabilities
+
+2004-12-27
+ * updating to latest autoconf/automake/libtool stuff in Suse92
+ * required a rewrite of ax_enable_builddir.m4 in ac-archive
+ * adding two macros to silence down bogus depracation warnings
+ from the latest gcc 3.3.5
+
+2004-11-27
+ * harveyandsu:yahoo:com reported an api mismatch for SDL rwops
+ usage and the implementation in the SDL_rwops_zzip example.
+ *
+
+2004-05-11
+ * documenting zzip-cryptoid handling
+ * update mksite.sh
+
+2004-05-09
+ * documenting zzipmmapped and zzipfseeko parser libraries
+
+2004-05-08
+ * remove bogus zzip_file_open_ext_io from zzip.h
+ * change to use mksite.sh for documentation builds
+
+2004-03-08
+ * add link in docs/history.htm to the new appnote.txt whitepaper
+ on zip file format specification.
+
+2004-02-19
+ * a test run on solaris did show that fetch.* needs to be linked
+ to the new lib*.la stuff - to convert endianess-dependent
+ values from zip to main memory
+ * there seems to be an automake problem with hpux10 that I can not
+ yet define on what grounds it is - to get away with it I am
+ not defining automake 1.7 as the version to be used, plus
+ autoconf 2.57 - these are pretty new.
+
+2004-01-24
+ * zzip/fseeko.c and bins/zzip.c had some issued with non-C99 compilers
+ which do not like variable declarations in the middle of a block
+
+2004-01-16
+ * zzip_rewind again - the deflateReset does not reset the
+ input buffer variables (oops) so we have to do it
+ explicitly. Here we adopt to set crestlen to full
+ csize and the current z-buffer fillstate avail_in
+ to null to trigger a new read() on next zzip_read.
+ * the zlib headers do not tell whether next_in/avail_in
+ is used in deflateReset as is done in deflateInit.
+ A question to zlib@gzip.org brought no answer (as
+ is always the case) and after some thinking I did
+ decide to reset avail_in *after* the zReset call.
+ * based on this decision, I have made up a patch and I was
+ sending it over to zlib@gzip.org. Same consequence
+ again, the message is bluntly ignored (while there is
+ traffic on zlib devel mailinglist). There seems to be
+ a major problem about it, either a technical problem
+ (mail-adress disfunctional) or a social problem (no
+ one cares or perhaps some minor racism).
+
+2003-12-29
+ * added libzzipfseeko.la with another simplified interface
+ * rename the other one to libzzipmmapped.la
+ * fix bugs for decompression on the latter as well
+ it seems the one has to use inflateInit2 (..., -MAX_WBITS)
+ * added bins/unzzipshow for an example binary
+ * added "--help" and "--version" to all bins examples
+
+2003-12-24
+ * added libzzipmmap.la with a simplified interface to zip archives
+ * added bins unzzipdir and unzzipcat to show usage of libzzipmmap.la
+ * introduce zzip/types.h to allow easier inclusion to zzip/mmapped.*
+
+2003-12-22
+ * add AC_C_BIGENDIAN and
+ * move out ZZIP_GET to zzip/fetch.h where we also specify access
+ wrappers to items in the zzip/format.h structures, portably.
+ * add byteswap.h ac_check and put a new file autoconf.h to carry
+ compiletime overrides for the autoconf definitions.
+ * start changing over to use zzip/fetch.h definitions everywhere
+ thereby replacing original ZZIP_GET16/32 usages completely.
+ This is localized to zzip/zip.c
+ * rename struct zzip_root_dirent to struct zzip_disk_entry but
+ retain a compatibility declaration.
+ * introduce zzip_version_t and zzip_dostime_t along with an optional
+ ZZIP_NEED_PACKED def that helps with weird compiler struct packing
+ * struct zzip_file_trailer did not use the char[x] variant, it does now
+ * place even more zzip/fetch.h declarations
+ * place even more defs into zzip/format.h
+ * noting CVS area on webpages
+
+2003-12-21
+ * Nigel Stewart hints on some MSVC 6 issues, thanks.
+
+2003-12-20
+ * implant *Reset instead of Deinit/Init in zzip_rewind - the latter
+ is supposed to make for a memory leak (see problem report).
+
+2003-12-10
+ * add zzip_rewind fix by glenn = Glenn Maynard (www.stepmania.com)
+ * fix dirsep_casecmp buglet noted by glenn
+ * glenn did ask for zzip_fstat, and here it is.
+ * but glenn's file_dup is not as easy and skipped here.
+ * otherwise, glenn noted that zziplib is not fully ready for multithreading,
+ the reason seems to be mostly in the reshared 32k buffer where the
+ access is not synchronized completely :-( ... effectivly, in MT
+ all ZZIP_FILE*s need to have a dedicated ZZIP_DIR*buffer.
+ * update make-doc.py with newest version
+
+2003-08-18
+ * changing license to dual MPL / LGPL
+ * bumping version code 12.83 = 13.23 which are actually the very
+ same inside the code
+ * remove a few compatibility headers at install time.
+ * add install-exec-hook to add ln -s aliases for sharedlibs
+ they are being tried again in .spec but that does not
+ matter as long as it is "|| true"
+ * adapt all source to carry the MPL alternative license
+ instead of the old cruft.
+ * remove staticlinking.txt - it should be covered by copying.htm now
+ * remove "compats" disthook as well as the complete subdirectory
+ i.e. rm -r "zziplib/" at top directory (actually, I store it
+ in a distant place for now.)
+ * remove _htmpages.ar and _manpages.are from dist tarball
+ * add toplevel COPYING.LIB
+ * adapt README and TODO
+ * remove ac_output(zziplib and bins/zzip-config)
+ * remove bins/zzip-config.in
+ * adapt m4 macro and call zzip-config to be archaic
+ * remove maintainer-mode for "test.zip"
+ * turn zzip_plugin_io_t into a union reference, the old struct is
+ still of the same name but a member in there called "fd"
+ the typedef is no a "union _zzip_plugin_io" instead.
+ * the member "use_mmap" is renamed to "sys" - we add a #define
+ in plugin.h to let some software compile with all versions
+ * in zzip/zip.c, try now with making maplen and pagesize of type
+ zzip_ssize_t - as it was newly introduce it might help and
+ perhaps be a little conservative in execution. Before that,
+ we did use size_t and it was provoking warnings like
+ comparing/computing signed+unsigned pairs of values.
+ * add "type" and "write" members to zzip_plugin_io, keep it
+ backward compatible as much as possible.
+ * add _zzip_write to zzip/conf.h
+ * remove ZZIP_WRAPWRAP code in plugin.c
+ * remove --with-wrapwrap
+ * introduce a #define _zzip_plugin_io_handlers and
+ typedefs zzip_plugin_io_handlers and zzip_plugin_io_handlers_t
+ * oops toplevel PHONY does not work, an automake restriction
+ * oops, "cat body.htm" should be "cat $(srcdir)/body.htm"
+ * adding manpages.ar again, just to be sure
+
+2003-08-14
+ * remove _not_implemend macro definitions for shallow-write api
+ from header zzip.h
+ * introduce symbol _ZZIP_WRITE_SOURCE that all files should
+ carry that want to have the declarations of the
+ shallow-write api
+ * use that symbol for zzip/write.c and bins/zzip.c
+ * adding docs/64on32.htm
+
+2003-08-14
+ * for the shallow-write api to compile on win32, we need to
+ test for direct.h which only exists on win'sh system
+ or so we assume
+ * add bins/unzzip
+ * add bins/zzip
+ * ooops, zzip_strerror_of should check dir != 0
+
+2003-08-13
+ * complete zip-write API - no actual implementation so far
+ * tested shallow-write implementation on solaris+linux+win32
+ * and now, call it zzip-12 always
+
+2003-08-12
+ * `make docs` does not always work, so we add `make docu` now
+ * update make-doc.py
+ * fix call for make-doc.py
+ * fix zzip_get16 bad refer that gets detected by make-doc.py
+
+
+2003-08-07
+ * implement zzip/write to a degree that it forwards calls to real
+ files and directories in the system. No zip archives here,
+ but the accession API has been setup so that applications
+ can start to pick it up even for versions of zziplib that
+ have been compiled without zip archive support.
+
+2003-08-07
+ * add doc lines in zzip/zzip.h
+ * add write-defines including flag-marker ZZIP_NO_CREAT
+ * add file write.c with empty definitions for write-support
+ * add the make-doc.py script in its last version - and make its output
+ the default master files for both html and docbook
+ * remove all other doc-maker scripts but make-doc.pl and make-doc.py
+ plus the make-dbk.pl of course
+ * twist configure.ac to set PYTHON instead of PHP
+
+2003-08-03
+ * make compatibility-headers to issue a warning upon include
+
+2003-07-31
+ * fix a segfault with corrupted central directory - just some checks
+ for field boundaries
+ * add a hack to support the fixup-rootdir thing with some simple(r) code
+ that abuses a few fields in the trailer-structure
+ * cvs checkout savannah.gnu.org:config into ../savannah.config and,
+ * add a rule `make configsub` in Makefile.mk to update the two files
+ uses/config.sub and uses/config.guess to the latest versions.
+
+2003-07-30
+ * creating a 0.12.82 out of the source for 0.10.82 and make up a rpm
+ spec which does alias the .so files for these generations
+
+2003-07-29
+ * the include of _LARGEFILE_SOURCE to do ZZIP_LARGEFILE_RENAME is
+ actually a bad idea - the respective symbol does not provoke
+ 64bit off_t on newer platforms. Only _LARGE_FILES seems to
+ be correct here for older aix platform to get them define
+ off_t = 64bit where others are using _FILE_OFFSET_BITS=64 now.
+ * after changes to README, remember to package updated test.zip !!
+ otherwise `make check` will fail.
+ * modify _msvc.sed to include "define ssize_t int"
+ * use ZZIP_EXPORTS instead of ZZIP_DLL for DLL export, that's the
+ automatic way of MSVC 6 saying that "zzip" is a DLL project.
+ * create new msvc6/zzip.dsp and delete msvc6/zziplib_DLL.dsp
+ * all examples shall import from zzip.dll by linking with zzip.lib
+ whereas that other zziplib.lib is just the static library
+ * do a looong and detailed information in README.MSVC6
+ * create a rule to pack the *.dll,*.exe,*lib files into a zip
+
+2003-07-28
+ * doc bug in zzip-zip reported by j.scrott.frank
+ * remind me: unzip from memory seems to be more of a task lately...
+ * forgot to modify RELASEINFO in rpm for zzip64 variant
+ * also do not just use -D_LARGEFILE_SOURCE, it does not have the
+ desired effect on all systems. Instead invent a new name
+ -D_ZZIP_LARGEFILE to make it happen magically.
+ * invent a rule to create zziplib64.pc from zziplib.pc for the
+ renamed libzzip.so -> libzzip64.so
+ * invent a rule to create zziplib64.la from zziplib.la for the
+ renamed libzzip.so -> libzzip64.so
+ * do also rename default libzzip.so to libzzip32.so and then create
+ a symlink to it under the old name libzzip.so
+ * create zziplib32.pc and zziplib32.la files accordingly. Following
+ an application may choose explicitly between 32 or 64bit off_t
+ version. This allows us to claim now that the default libzzip.so
+ library may be either of them and not anymore strict 32bit off_t
+ * aaahm, note that all of these account for rules in the linux rpm spec!
+ other system do not get this packaging support from vanilla tarfile
+ * well, better make it lib01 instead of lib0.10 for the rpm name
+ * already roll out visualc7.zip and msvc6 files in subdirectories,
+ do not ship them as .zip files
+ * already adapt msvc6 .dsp files but not yet tested
+ * rename main "rpm" target into "rpm2" to get rid of the warning message
+ * use (cd zzip64 && make install) instead of (... make install-ltLIBRARIES)
+ since otherwise we do not get any .pc file installed (oops)
+ * while modifying *.la into *64.la, take care to fixup reference to the
+ "old archive" *.a as well making it *64.a - same for *32.la file.
+ * some file.c reports there was not previous declaration of some of
+ its functions, but _only_ in 64bit compile step.
+ Reason: looks like a gcc 3.2.2 bug, no fix here.
+ * convert a few "ln -s" into "ln -s -f" in "make install" parts
+ * update README to point out staticlink model
+ in a separated LICENSE section.
+
+2003-07-28
+ * add three extra gcc options: -Wpointer-arith, -Wsign-compare, and
+ -Wmissing-declarations which will help about portability to
+ platforms where that is enabled by default in -Wall
+ * sign-compare fix in, zzobfuscated (zzip_size_t -> zzip_ssize_t),
+ * make 5 functions in zzipwrap/wrap.c global=>to=>static
+ * add pre-delcare headers for 2 functions in zzip/zip.c
+ __zzip_find_disk_trailer(), __zzip_parse_root_directory()
+ * rewording of "ends/tail" in find-disk-trailer which does also find
+ a little bug (ends-1 or not) in there, It should not have shown any
+ practical problem so far, also corrected by anotgher little bug
+ in there (ends-tail > sizeof or ends-tail >= sizeof)
+ * adding a parts of a patch from Martin Schitter to harden zziplib
+ for corrupted zip files.
+ * remove a few duplicates in Makefile.mk, still need to keep "rpm"
+ * add declaration for zzip_dir_alloc_ext_io into zzip/lib.h
+
+2003-07-27
+ * redefine size_t maplen -> off_t maplen and for each of the calls to
+ mmap()/munmap()/read()/getpagesize() we cast to size_t - this might
+ get us rid of a few warnings about signed/unsigned comparisons.
+ * introduce AC_TYPE_SIZE_T and use the prefixed variant _zzip_size_t
+ within plugin.h for io->read() calls. That makes for a little
+ bit of portability - it seems some platforms (dot-net f.e.)
+ do not `typedef unsigned int size_t;`, perhaps because int is 16bit
+ and a 32bit or even 64bit entity is needed.
+ * now we do not need to AC_COMPILE_CHECK_SIZEOF(size_t) anymore, perhaps
+ even stand io-wrap is not needed anymore. Let's see.
+ * both changes need update of zzip/conf.h for _zzip_size_t plus
+ - plugin.h for io->read(,,size_t)
+ - zzip.h for zzip_file_read (,,size_t)
+ - zzip.h for zzip_read(,,size_t)
+ - zzip.h for zzip_fread(,size_t,size_t,)
+ - zzip.h for zzip_seek(,off_t,)
+ - zzip.h for zzip_tell(,off_t,)
+ - file.h int => size_t for zzip_file's restlen crestlen usize csize
+ * the io->seeks(,off_t,) has not been respected so far sometimes.
+ and like lseek(2), we define the returntype of zzip_seek as off_t
+ * introduce zzip_ssize_t as well, and modify
+ - zzip.h for zzip_read and zzip_fread and zzip_file_read
+ - plugin.h for io->read() return type
+ * dot-net bug in aligned4() - sizeof(long) < sizeof(void*) !!
+ better use off_t in the hope that it does fix it
+ * tested on ia32-linux, alpha64-linux, sparc32-solaris
+ * ooops, we need to update io-plugin examples and documentation as well,
+ since we define a custom _read() routine righ there.
+
+2003-07-26
+ * updating to AX_SPEC_DEFAULTS macro
+ * zzshowme does not work with no libzzip installed in the system
+ * add automake option dist-bzip2
+ * use tar.bz2 for rpm build
+ * add dist-bzip for the latter
+ * use zziplib-lib0.10 package which provides zziplib and libzzip0
+ * forgot to add *.la files into the rpm devel package
+ * AC_SET_RELEASEINFO_VERSIONINFO => AX_SET_VERSION_INFO
+ * adjust all RELEASEINFO -> RELEASE_INFO accordingly
+ * and choose 0.10.82.pre1 as a vesion number for testing
+ which is possible now as the new macro does it right.
+ * forgot override of default_includes in test/*.am
+ * somehow ax_prefix gets the wrong input, i.e. _config.h instead of config.h
+ so we make that one explicit now
+
+2003-05-13
+ * the off64_t mode renaming for 64on32 was done incorrectly and
+ it lead to problems on solaris8 - fix it.
+ * fixup `make check` to work on subdir build
+
+2003-05-11
+ * adapt README file to clarify LICENSE details as suggested by
+ a discussion with ACE/TAO developers that want to use the
+ library for some compressed xml archives.
+ * fix a few zzip_char_t bugs that got visible in MSVC mode as
+ reported by Olge Ryabukha
+ * kill sfnet strand of the rpm build, the docs are installed
+ into the share/groups part and the omf file points to that
+ place. The index.html file is the one at sourceforge while
+ the other one is the entry point of the local documentation.
+
+2003-04-21
+ * quite a few updates are need to --enable-builddir by default
+ * watch out: subdir build is the default now!
+
+2003-04-20
+ * pick up AX_ENABLE_BUILDDIR
+ * throw out ac_subst CONFIG_ARGS
+ * use AX_SPEC_PACKAGE_VERSION
+
+2003-04-20
+ * memory leak in zzip/file.c - adding free(dir->realname) zzip/zip.c
+ in function zzip_dir_close called via zzip_file_close
+ (bug reported by Olge Ryabukha, thanks!)
+ * "/" is hardcoded for finding subpaths but on windows that could be
+ a backslash as well. That should be handled better, we add some
+ alternative implementations for dirsep_strrchr and dirsep_casecmp
+ but the default is OFF!! even on WINDOWS !!
+ * thereby seen another problem: we did deliberately use strcasecmp but
+ this symbol is not available on all unix systems - the manual
+ says its a BSD4.3 addition. Some other systems call it strcmpi
+ or stricmp instead, or they do not have it at all. Here we add
+ a configure rule to check for that symbol, and when we do not
+ have it then we _enable_ dirsep_casecmp automatically.
+
+2003-01-16
+ * change extension of intermediate docbookfiles to ".xml"
+ * throw out attempts to compile docs with php
+
+2003-01-15
+ * lots of doc updates in between. (forgot to document them).
+ * a zzip-config update, and installing an aclocal macro now.
+
+2003-01-06
+ * defattr(root,root) !! - why that had been forgotten? hmmm...
+ * allowing for --disable-debug to clean cflags from -g entries
+ but it has not effect on callframe generation... actually.
+
+2003-01-05
+ * we need to stop the manpages.ar bloat - now!
+
+2003-01-05
+ * add largefile tests in configure.ac
+ * add largefile detection in zzip/conf.h
+ * add renamings for zzip_telldir/seekdir in zzip/zzip.h
+ * add extra exports in zzip/dir.c to have both 32bit and 64bit names exported
+ i.e. zzip_telldir _and_ zzip_telldir64
+ * add renamings in zzip/plugin.h to ensure that 64bit-off_t-compiled zziplib
+ is not given io-callbacks being from another program that is actually
+ compiled as 32bit-off_t and where therefore arguments do not match.
+ * detected a dubious export of "aligned4()" - rename this export now.
+ * also rename everything having "_io" in the name - just to guard ourselves
+ from the case where two -lzzip are in the libpath and one is
+ compiled 64bit-off_t while the other is not.
+ * rename the younger function s/zzip_open_shared/zzip_open_shared_io/
+ * make up functions for zzip_open_ext_io and zzip_opendir_ext_io for the
+ case of 32/64bit dual systems where lib is compiled in largefile mode.
+ Let the call succeed unless an "io" structure was given - return
+ the EOVERFLOW errno as specified in the large.file WG documents.
+ * make all parallel defines for 32/64 bit dual off_t dependent on
+ defined EOVERFLOW and defined PIC - i.e. only for dynamic linkage.
+ * adding LARGEFILE_CFLAGS into zziplib.pc and bins/zzip-config.in
+ * NOTE: the default for --with-largefile is still OFF !!
+ * NOTE: our zzip_readdir is not depenent on off_t size
+ * adding -64 into the --release info for the sharedlibrary build
+ it should have been a --variant but such does not exist so far
+ in libtool, sorry.
+ * extract AC_SYS_LARGEFILE_SENSITIVE and put it into an extra ac-macro
+ * clean zzip/file.h from compatibility-install as zzip-file.h
+ the structure in there contains zzip_off_t items and they
+ should be internal always anyway - so disallow access for
+ old programs now just to be sure.
+ * adding zzip64 compilation into zziplib.spec - an rpm package will now
+ install both 32bit off_t and 64bit off_t variants of the sharedlib
+ * note: we do not copy 64bit zzcat into the rpm, perhaps we should?
+
+2002-12-31
+ * add make check-sfx
+ * add zzipself.c and zzipsetstub.c for the sfx test
+ * zzip_file_open takes o_modes flags, clarify in zzip.h
+
+2002-12-27
+ * adding scrollkeeper omf file generation in docs/
+ * adding omf file installation in docs/make-install-doc
+ * replace %post-doc message in zziplib.spec with scrollkeeper-update call.
+ * need *.pc *.omf in CLEANFILES now
+ * mingw32 crossgcc tests for win32 dirent emulation - did need some fixing
+
+2002-12-23
+ * adding generation/installation of pkgconfig files
+ * making SDL a build-requirement for rpm packaging
+
+2002-12-22
+ * add compatibility subdirectory "zziplib"
+ * zzipback.sed to create zziplib/* files from current release files
+ * include into distribution tarball
+ * IMPORTANT: flashback - 12.24 is now called 10.74 -
+ the old source line will cease to exist, only the compatibility
+ directory will survive a while - that should put some pressure
+ on developers to update to the new source tree. And it saves me
+ some work to keep two trees in sync.
+
+2002-12-20
+ * fix some problems of make-doc.pl with the current project
+ * make a standard inlude info referring to zziplib.h as well
+ * unpack htmpages.ar on SFNET and register it on the frontpage
+ * don't forget to modify includes of internal headers
+ * ...
+ * fixed an annoying bug in make-doc.pl
+ * include htmpages.ar into the tarball
+
+2002-12-19 Guido Drhaeim <guidod@gmx.de>
+ * completed new directory structure - the library is called 0.12.22 as
+ to match 0.10.72, it's the same C source in its content
+ * install-headers modified - the new structure is now compatible both
+ as a shared library (binary compatible) and for the include headers
+ too - source compatible not only for function names but also for
+ the #include lines
+ * 0.12.23 fixes a bug in make doc: the xmlto html was never done.
+ * and we implant make-doc.pl which was founded on the base of the local
+ zzip-doc.pl but has since gone a lot further. It's currently just
+ a third variant but it is now used as the primary master default.
+
+2002-12-18 Guido Draheim <guidod@gmx.de>
+ * man page update for zzip_open_shared (it turns out to be a good name).
+ * let frontpage point to http://www.gzip.org/zlib for primary zlib site.
+
+2002-12-17 Guido Draheim <guidod@gmx.de>
+ * introduce zzip_open_file that may have an extra argument of a factory
+ file to share the zzip internal directory if that is possible.
+ * introduce zzip_freopen to take an extra argument. The supplied handle
+ is freed unless of course one puts ZZIP_FACTORY into o_modes so
+ that it becomes a wrapper around zzip_open_file
+ * the zzip_open_file, in that case, is the old zzip_open_ext_io call
+ but extended with checking the factory stream for a matching
+ basename.
+ * while being there: introduce ZZIP_ALLOWREAL o_mode that will make it
+ that a real file is open/read/close with the standard posixish
+ routines. This is most useful when having an obfuscated zip
+ file around but during development one wants to sometimes check
+ with a real file - so the call mode is something in the middle
+ of ZZIP_ALLOWREAL - ZZIP_PREFERZIP|ZZIP_ALLOWREAL - ZZIP_ONLYZIP
+ where the middle is for "yet another file not yet included",
+ hmm, perhaps a cheat file? ;-)=)
+ * cleaning rwops example: fix the mode check, it's not needful to start
+ with "r" to be a readfile mode, it may be somewhere in between.
+ * introduced __zzip_dir_parse as a cut off from zzip_dir_fdopen_ext_io,
+ but it did turn out to be not necessary, so it is made static in
+ the end. Still, it works as documenting the control flow better.
+
+2002-12-17 Guido Draheim <guidod@gmx.de>
+ * win32 mmap removing extra braces
+ * win32 dirent implementation added - new file __dirent.h
+ and modified zzip-dir.c
+ * a couple of arg[n] -> argv[argn] cleanups.
+ * a missing argc > 1 check added.
+ * all changes due tests / bug reports by Thomas-dot-Eder-at-nmi-AT
+
+2002-12-16 Guido Draheim <guidod@gmx.de>
+ * the infozip `zip` tool puts out messages per default on some machines
+ fix by adding >/dev/null in some places of Makefile.am
+ * the hpux10.20 platform has sys/mman.h but no MAP_FAILED
+ the `man mmap` says it returnes "-1" as done on all other unix
+ compatible platforms, so we add a default define ((void*)(-1))
+ * update TODO file with some hints on test runs.
+ * add --with-zlib configure call to make it easier to specify a path
+ * make zlib error messages to point to this configure option.
+ * beautify error output on all other options as well.
+ * create `make brute` to make a bruteforce test
+ * solaris8 make has a problem with $< ... change sometimes into $?
+ * freebsd/darwin have 64bit off_t by default - and that reveals a problem
+ in the zzip_telldir/zzip_seekdir code. Let's change the code to make
+ it return/receive a byte-offset of "dir->hdr" to "dir->hdr0".
+ This makes printing of those values also more intelligible (if ever).
+ * ia64-linux reveals a problem in "default_io" since size_t is 64bit.
+ We modify --with-wrapwrap to autodetect this case. This is okay
+ since zip-files can not get bigger than 32bit offsets anyway.
+
+2002-12-16 Guido Draheim <guidod@gmx.de>
+ * merging corrected README.SDL and __hints.h
+ courtesy of Thomas-dot-Eder-at-nmi-AT
+ * update CFLAGS ac-macros to the new generation as shipped with
+ latest ac-archive-0.5.39 (did upload just yesterday...)
+
+2002-12-14 Guido Draheim <guidod@gmx.de>
+ * many hours of debugging - I don't remember which flaw came in through
+ the latest changes or which others were there before *sigh*
+ * e.g. the error-code mappings were refined on linux errno codes
+ * fix "caseless" bugs reported by Thomas-dot-Eder-at-nmi-AT
+ * fix MSVC related flaw when taking a casted value as an lvalue
+ * replace AC_CREATE_PREFIX_CONFIG_H with new style AX_PREFIX_CONFIG_H
+ * invent zzip-msvc.sed to turn config.h.in into zzip-msvc.in and
+ finalize a fresh zzip-msvc.h via AX_PREFIX_CONFIG_H
+
+2002-12-13 Guido Draheim <guidod@gmx.de>
+ * shown by Mike Nordell tamlin-at-algonet-SE we can support win32 mmap
+ * modify configure.ac : if have:winbase.h then auto -enable-mmap
+ * refactor mmap'ing - it goes into __mmap.h and uses the io->use_mmap value
+ and that include file contains both posix and win32 mmap variants
+ * rewrite pagesize/mapoff calculations - this should be faster in itself
+ and also easier to maintain in the future for being more obvious.
+ * rewrite read/write defines and wrapwrap's. The zzip-conf.h does now
+ contain defines for _zzip_read/_zzip_lseek - and it should us get
+ rid of the nasty win32 problems with redefining _read/read
+ * refactor DBG defines - put them into __debug.h - oops, xbuf() was
+ an exported symbol, better be not. Use only newer NOTE/WARN macros!
+ * implant __hints.h include - that's taken from another project but it
+ is so damn useful ;-)
+
+2002-12-12 Guido Draheim <guidod@gmx.de>
+ * modifizied zzip-zip.c to include a sanity check on getpagesize ()
+ for mmap () functionality and ZZIP_BUFSIZ (the default is good).
+ * modify configure.ac : const char strings
+ * modify configure.ac : strict prototypes
+ * modify configure.ac : all warnings
+ * ... and so it reveals something missed along ;-)
+
+2002-08-27 Guido Draheim <guidod@gmx.de>
+ * modified zzip-stdint.h along the example patch for FreeBSD done
+ by wjpalentstijn at sourceforge in projet uwadv.
+
+2002-07-24 Guido Draheim <guidod@gmx.de>
+ * did teach myself php over converting zzip-doc.pl into zzip-doc.php
+ * added php-test and another way to create the docbook file, with php
+
+2002-07-20 Guido Draheim <guidod@gmx.de>
+ * lots of fixes around docbook/manpage - and generate a zziplib.3
+ overview page. Fixes also lots of comments in the sources.
+ * modified fopen-mode interpration nicely.
+ * added zzip-api for full overview of the zzip's API
+
+2002-07-19 Guido Draheim <guidod@gmx.de>
+ * greatly enhanced docbook/manpage generation - including to attach
+ author and license info from the respective source file header
+
+2002-07-18 Guido Draheim <guidod@gmx.de>
+ * extended the perlscript to generate zziplib.docbook
+ * use xmlto to generated manpages.ar
+ * install-man3 target and push into rpm-devel package
+
+2002-07-17 Guido Draheim <guidod@gmx.de>
+ * no new code, just doc updates. The perl-script is now capable to
+ combine _ext_io functions with their non-ext/io cousin, and the
+ sources have been modified to honour this new mode.
+ * the perl-script is now ready to spit out other data like docbook
+ files that we can generate man-pages from later.
+
+2002-07-16 Guido Draheim <guidod@gmx.de>
+ * extern-C in SDL_rwops_zzip.h ... and ifdef'able DECLSPEC for staticlinking
+ * zzip_fopen allows to greatly simplify SDL_rwops_zzip.c
+ * zzxordir.c zzxorcat.c zzxorcopy.c invented
+ * lots of new documentation added
+ zzip-extio.html zzip-xor.html zzip-refs.html
+ * new checks that test the zzxor examples
+ * and found an zzxor bug in the course
+
+2002-07-15 Guido Draheim <guidod@gmx.de>
+ * Michael-dot-Fink-at-asamnet-dot-de did some code review while
+ going after a specialty he wanted to do with the libs, and therefore..
+ * PREFERZIP did never test real file - stupid bug, inverted logic....
+ * add ZIPONLY zzipmode - we have plenty of options available... on 32bit
+ platforms however, since I want to keep with the access-bits in
+ the lower parts.
+
+2002-07-12 Guido Draheim <guidod@gmx.de>
+ * watcom-c-10.5 project file added
+ * used my old watcom compiler to debug the win32 problems, and it turned
+ out to be a mismatch in proccall for zlib - while the default in
+ zlib.h inferred WINAPI, it turned out that zlib114dll.zip had in
+ fact been compiled with __syscall procframe callmethod. Duh!!!
+ * some things had to be rearranged in header files - most classically it
+ seems that this compiler does not support __inline in C mode.
+
+2002-07-11 Guido Draheim <guidod@gmx.de>
+ * convert all API const types into those with _zzip_const and use new
+ types like zzip_char_t and zzip_strings_t throughout the sources.
+ * add ZZIP_RDONLY and friends. Do not use fcntl bits anymore, and limit
+ use routines to convert them into O_DEFs later one in the next
+ version of this lib - here we just declare them to be their O_DEFs
+ but code should start to pick up ZZIP_DEFs in the meantime.
+ * add zzip_fopen and friends as another type of magic wrappers.
+ * modify open_ext_io to use receive separate arguments for the two
+ zzip extraflags - use these from now on, the others are just
+ for limited backward compatibility.
+ * modify all _close functions to return "int".
+
+2002-07-10 Guido Draheim <guidod@gmx.de>
+ * Marlin Prowell mbp-at-cadalog-inc-dot-com did hit a problem on FreeBSD
+ showing off a config problem - the configure.ac macro for off_t is
+ written to be _undefined_ if off_t existed in the system. Instead we
+ chose to defined zzip_off_t into a "long" as it is needed on win32,
+ and since FreeBSD on LFP32 uses OFF64 it did fall flat on calls to
+ lseek - without io-wrap the gcc did cast them correctly, so it worked.
+ * the fix: use off_t if zzip_off_t undefined. Add a define zzip_off_t into
+ long in conf-msvc.h. Add a configure-option to have wrappers for the
+ default lowlevel calls as suggested by Marlin but I choose to have
+ them off by default - a bsd ports package may start using it.
+ * there have not been reported problems in the last three months where only
+ developers knew about the new version. Guess it's time to push this
+ tarball and announce it on freshmeat.
+
+2002-04-30 Guido Draheim <guidod@gmx.de>
+ * fix typo in zzip-zip.c: __USE_MMAP -> _USE_MMAP
+ * if zlib.h not found, make it a fatal exit
+
+2002-04-25 Guido Draheim <guidod@gmx.de>
+ * adding a few more `make check` rules for bigger zip files
+ * add even negative tests
+ * add some spaces in error-messaging in zzdir.c and let return
+ an exitcode when some argument files could not be read
+
+2002-04-24 Guido Draheim <guidod@gmx.de>
+ * apply patch from Mike Nordell
+ changes all "const char * *" into the intended "const char * const *"
+ changes some typecasts
+ corrects comment and adds some
+ and two fixes
+ * put the updated MSVC6 files into the project, again Mike Nordell
+ * me, add new zzwrap.dsp to DIST in Makefile.am, following Mike's addition
+ * me, modify some typecasts to use off_t/size_t where appropriate
+ * modified COPYING.ZZIP to be a bit more general than just for ZZIPLIB
+ as noted by Tomi Olilla
+ * zzipwrap demo_callback, how can we do void* and char* at the same time...
+
+2002-04-23 Guido Draheim <guidod@gmx.de>
+ * changed ssize_t into int in zzipwrap-mem for portability reasons
+ * fix zzip_dir_fdopen_ext for access to uninitialized io-vtable
+ (thanks to Lutz Sammer johns98-at-web-dot-de for testing)
+
+2002-04-22 Guido Draheim <guidod@gmx.de>
+ * add MSVC6 project files contributed by Mike Nordell tamlin-at-algonet-dot-SE
+ * add plugin_io-patch from Mike Nordell
+ and dump the iowrap-patch from Andreas Shiffler from earlier release
+ * append the Mike Nordell's zzobfuscated.c to Makefile.am
+ * add a new file COPYING for new less-strictly license
+ after Tomi Ollila has transferred full copyright to me
+ * remove Tomi Ollila from all copyright entries in the sources
+ but honour his name where appropriate
+ * modify LGPL hints in sources and point to COPYING.ZZIP as well
+ and change copyright year info
+ * create COPYING.ZZIP with some general LGPL exceptions.
+ * use newer AC_CREATE_CONFIG_H macro and start using acinclude.m4
+ to allow retooling of the project.
+ * and use zzip_off_t instead of ZZIP_off_t (but keep backward compatibility)
+ * apply patch for the problem detected and corrected by
+ Steve Dillon steved-at-phone-IVR-dot-com
+ * try with an updated ac_create_prefix_config_h due to a bug report by
+ John W. O'Brien john-at-jugglers-dot.com
+ where his shell-and-echo combination did interpret \\1 twice.
+ * add use_mmap flag to plugin_io_t, so the feature can be used
+ along USE_MMAP configured setups
+ * change USE_MMAP #ifdefs to use if()s and to rely on the
+ compiler to do code removal for unreachable code
+ * remove tell() part of plugin_io and rename seek()-indirection
+ to seeks()-indirection using a tells()-macro in zzip-file
+ * also rename s/seek/seeks/ in zzip-zip and kill the (*function)(x)
+ for the indirection functions into just function(x)-calls
+ * fix zzobfuscated example code - there's no read() without unistd.h
+ in unix, and global zzip_install_io had been removed lately.
+ * add zzipwrap-io.c and zzipwrap.c from Andreas Schiffler's patch
+ on the new ground of Mike Nordell's plugin_io
+ * modify zzipwrap sources to work with plugin-io
+ * add io pointer to dir-structure, and use it as the default for file-structs
+ * __zzip_open_zip is called __zzip_try_open now and takes two arguments
+ * typedef struct zzip_plugin_io * zzip_plugin_io_t;
+ * zzip_opendir_ext_io .. for magic convenience
+ * create new zzipwrap.la in Makefile.am
+ * move plugin_io struct from zziplib.h to zzip-io.h
+ along with its helper functions
+ * change all filesize into zzip_off_t
+ * s/zzip_find_disk_trailer/__zzip_find_disk_trailer/ (additional io arg)
+ * s/zzip_parse_root_directory/__zzip_parse_root_directory/ (ditto)
+
+2001-10-11 Guido Draheim <guidod@gmx.de>
+ * added zzipwrap feature contributed by Andreas Schiffler
+
+2001-09-18 Guido Draheim <guidod@gmx.de>
+ * fix bug for `zzip-config --cflags`
+ which did print /xx/include instead of -I/xx/include
+ (thanks to Roger Ostrander <denor(at)yahoo.com>)
+ * change the for-loop in zzip-config - the "for i ; do" is not portable
+ because I had problems on solaris-sh. Use "$@" which expands
+ to a list (!!) of argv entries for this for-loop even for
+ arguments that contain spaces. fascinating.
+ * use AC_HELP_STRING ... the `configure --help` screen got a bit
+ misformatted lately.
+ * add a `make check` rule.
+
+2001-08-19 Guido Draheim <guidod@gmx.de>
+ * add that /programs magic to the $prefix check in configure.ac
+ * add that /usr/share magic to the $prefix check in configure.ac
+ * fix zzip-sdl-rwops.html layout (and copying.zlib link).
+ * fix some flaws in sdl-rwops example source (just by code review).
+ * add unistd.h include to zziptest.c to silence off the warning about sleep
+ * add non-dll compile to extern in zzip-conf.h - does that fix anything?
+
+2001-08-18 Guido Draheim <guidod@gmx.de>
+ * SDL_rwops_zzip.c/SDL_rwops_zzip.h SDL-example file.
+ * change all filename args to be const
+ * add ZZIP_const to zzip-conf.h, but do not use it for now.
+ It seems that all current lib-users have a modern compiler...
+
+2001-08-16 Guido Draheim <guidod@gmx.de>
+ * export zzip_dir_free / zzip_dir_alloc
+ * bring in fileext field to check for multiple fileextensions.
+ * make zzip_open check for multiple (default) fileextensions.
+ * add ifdef USE_ZZIPLIKES to implement feature proposed by
+ Julien Cayzac <deepmind(at)jessica.brainlex.com>
+ * make zzip_open check along the dirpath for a zip-file
+ a feature proposed by Lutz Sammer <Johns98(at)web.de>
+
+2001-08-15 Guido Draheim <guidod@gmx.de>
+ * add "stroustrup" style to all c files to ensure that casual
+ developers do not trash the layout unintentionally.
+ * modify examples a bit with more newlines / comments.
+ * re-license examples to ZLIB license
+ * include COPYING.ZLIB into doc_FILES
+
+2001-08-10 Guido Draheim <guidod@gmx.de>
+ * change frontpage of webpages - including a few crosslinks to
+ other projects
+
+2001-08-07 Guido Draheim <guidod@gmx.de>
+ * split version X.Y.Z into -relese X -version-info Y:Z
+ * adding --disable-thread-safe, and add -thread-safe linkage by default
+ * modify releaseinfo for with-debug
+ * install-zip target to make a windows package
+ * change serial to _vendor - rpm has never been used for other than linux
+
+2001-08-06 Guido Draheim <guidod@gmx.de>
+ * reorganize docs, update docs to new style
+ * split version X.Y.Z into -release X.Y -version-info Z
+
+2001-08-05 Guido Draheim <guidod@gmx.de>
+ * add zzip-msvc.h, a header file that will be included when
+ a windows compiler is detected in zzip-conf.h, e.g.
+ _MSC_VER or __BORLANDC__
+ * mv index.html zzip-index.html and add makerule that patches
+ the VERSION in before installing it as index.html
+ * add a makerule to build sourceforge htdocs and add it
+ to the rpm build.
+ * add generic patches for libtool into configure.ac
+
+2001-07-18 Guido Draheim <guidod@gmx.de>
+ * check up bugs in automake 1.4beef, now using a rule to
+ override AUTO* in non-maintainer-mode. we also set
+ libtool to silent in non-maintainer-mode
+ * docs are installed to $datadir/doc/$package as default
+ * rpms can now be built.
+ * create --with-docdir and let it be filled in rpm-configure
+ so that docs will end up where rpmopt says it should.
+ * ChangeLog goes into %doc of rpms.
+ * uhmm, forgot to install the test*.c files into the docdir
+ * the bin rpms had not been built
+ * compress into base and devel package
+ * errnolist should be static
+
+2001-07-17 Guido Draheim <guidod@gmx.de>
+ * nuke Makerule system, use plain autotools style including
+ configure && make install to rebuild
+ * update Makefile.am (which is new now)
+ * use next-generation autotools as a basis, update configure.ac
+ to newer style, update configscreen at the end of file
+ * check perl in configure and let it default to "echo"
+ * check HAVE_ defines coming from config.h - it is not anymore
+ included by zzip-config.h, so each config-def usage
+ must now use the prefix'd version
+ * provide a zziplib.spec file
+
+2001-01-05 Guido Draheim <guidod@gmx.de>
+ * apply zzip_seek-patch from Ted [sourceforge.net/users/tam4]
+ * -> 0.10.12
+
+2001-01-02 Guido Draheim <guidod@gmx.de>
+ * gone through a couple of trial and error versions until
+ I finally arrived at a mingw32msvc zzip.dll - basically
+ I had to update the included libtool files to 1.3.5
+ and the zzip.dll source-files have a ZZIP_DLL define
+ before the first include that points to zzip-conf.h -
+ and there is the magic about dllexport and dllimport.
+ Hopefully the same can run under MSVC without further
+ changes to the sources.
+ * try to package a zip-file that contains the relevant files
+ from the mingw32msvc install, so that windows user
+ get a clean dll without the need to compile it.
+ * -> 0.10.11
+
+2001-01-01 Guido Draheim <guidod@gmx.de>
+ * received a patch for MSVC compatibility from Ted A. (@lehigh.edu)
+ which made me to look after the project again. There
+ were two support requrest during summer that asked for
+ MSVC support, especially a prebuilt dll and headers.
+ * added AC_PREFIX_CONFIG_H that I made originally for
+ another project. It enables me to push the configure
+ detections into a global include/-dir. Ted's patch
+ used an `IFDEF MSVC DEFINE HAVE_SYS_TYPES_H` which
+ is a symptom of using config.h&HAVE_CONFIG_H and
+ zzip-file.h&IFDEF HAVE_xx. Change all header-IFDEF-HAVE
+ to use IFDEF-ZZIP_HAVE, and install zzip-config.h
+ along with the other headers, change the original
+ include"config.h" in zzip-stdint.h and make it rely
+ on zzip-conf.h - where zzip-conf.h includes zzip-config.h
+ and lists the detected features to be used, along with most
+ important extra defs for MSVC compatibility. (!!!)
+ * added AC_COMPILE_CHECK_SIZEOF (cross-compile clean!)
+ to always use the correct STDINT defines. Delete
+ use of glib.h if present, it's not needed anymore.
+ * use ZZIP_off_t instead of off_t
+ * prepare for a MSVC' ZZIP.DLL with _zzip_export defines..
+ -DZZIP_DLL -> declspec(dllexport)
+ -DHAVE_LIBZZIP -> declspec(dllimport)
+ * make sure, __attribute__ is okay with non-gcc compilers
+ and attache packed-attribute to *all* zipformat-structs. The
+ whole of zzipformat.h is also enclosed in pack-pragmas.
+ * -> 0.10.7
+ * create zzip-config.in and install it.
+ * mingw32msvc has shown that we need -lz on the command-line
+ to resolve a few symbols
+ * go automake
+ * install zzip-config along
+ * mingw32msvc does not build with cross-make.sh as seen on
+ http://libsdl.org/Xmingw32 - it needs the cross-tool/lib
+ just as well. There we have LDLIBADD in Makefile.mk now.
+ Now everything works for making win32 target with cross-tools.
+ * The rest of the make-struture should ensure to be able to
+ create an MSVC nmake Makefile - the Makerule.am is clean and
+ can be directly included... hopefully.
+ * -> 0.10.8
+
+
+2000-06-03 Guido Draheim <guidod@gmx.de>
+ * Tomi did a final test round for solaris, oh well,
+ configure needs some fixes...
+ * checking for myself at the university's solaris2.6 with
+ gcc-2.95.2, hmm... there's an sys/int_types.h that
+ seems to define some of C9X int-types, put it into
+ the configure.in and know about it in zzip-stdint.h
+ (btw, glibc seems to have include/inttypes.h that
+ includes stdint.h).
+ * tomi did report a problem with gcc 2.7.2... probably
+ sth. about -rpath
+ * release 0.10.6 and going to announce it...
+
+2000-05-31 Guido Draheim <guidod@gmx.de>
+ * created the main doc html files, index.html, zzip-zip.html
+ and zzip-file.html. the README and README.API is deleted,
+ and the TODO is a bit updated.
+ * This version is meant to be announced very soon now.
+ * release 0.10.5 and contact Tomi for his final nod.
+
+2000-05-31 Guido Draheim <guidod@gmx.de>
+ * ifdef HAVE_SYS_STAT_H where stat is used. Removed
+ the stats from zzip-file.h - it will now just try
+ to open the file or zip-file and assume that
+ open(2) will fail if the file is not there. I do
+ hereby assume that the returned fd is seekable..
+ * two new functions, zzip_dir_real and zzip_file_real
+ to check if the ZZIP_XX structures are wrapping a
+ real file or directory. Otherwise it is a zip-archive
+ or a zip-contained file respectively.
+ * zzip_compr_str does now know about stat-types and
+ will return names for S_ISTYPE bits.
+ * remove zzip_fd. It was identical to zzip_dirfd
+ whose name is consistent with dirent.h
+ * zzip_stat -> zzip_dir_stat since it does not neither
+ return a stat structure nor does it use stat(2)
+ * Checking the doc-comments
+
+2000-05-30 Guido Draheim <guidod@gmx.de>
+ * zzip_fp -> zzip_file and _fp_ functions to _file_
+ * zzip-stdint.h to ensure iso c9x typedefs
+ * ZZIP_GET16/32 macros in zzip.h header.
+ * minor updates in cosmetics and documentation
+ * have full replacements for dirent.h functions,
+ the zip-specific functions are now called
+ zip_dir_open (and more alike). The zzdir can
+ now show a list of files in a real directory,
+ or magically the files contained in a zip-arch.
+ * release 0.10.4
+
+2000-05-29 Guido Draheim <guidod@gmx.de>
+ * zzipmain -> zziptest and some cleanups
+ in the Makefile. zziptest is now just
+ another test program, so it gets compiled
+ in full similarity with zzcat and zzdir.
+ * removed zziptest from install-bin
+ * the long forgotten simplicistic dependency
+ rule is now in here too.
+ * cosmetics to pointer declar' stars in
+ zziplib.h
+ * ZZIP_FP -> ZZIP_FILE and
+ zzip-fp.h -> zzip-file.h
+ * removed the use of zzip.h where suggested
+ by Tomi. (use public zziplib.h instead)
+ * removed errno.h from zziplib.h
+ * printing configuration at end of configure.
+ * add install-includeHEADERS rule, so that
+ zziplib.h does now get installed.
+
+
+2000-05-27 Guido Draheim <guidod@gmx.de>
+ * zzipformat.h carries information about the
+ zip-file structure. The typedefs are now
+ used to access members of the zip-archive
+ (instead of using the offsets directly).
+ * notice that the members are declared
+ bytewise due to compiler semantics that is
+ making a structure packed&aligned to the
+ greatest common size (which would be 4).
+ setting as attribute(packed) is not very
+ portable.
+ * reworked the files, esp. zzip-zip.c and
+ zzip-ar.c
+ * _USE_MMAP in autoconf, including option
+ and CFLAGS setting. instead of open/read
+ to a scan buffer the zip-file is mmapped
+ and scanned directly.
+ * _LOWSTK in autoconf, including option and
+ a CFLAGS setting. Still need a scan buffer
+ and this flag tells us not to carve the
+ scan buffer from the auto-stack and use
+ instead some malloc for the scan buffer.
+ * DEBUG in autoconf, including option and
+ a CFLAGS setting. The macros should now
+ be able to be found everyone and only.
+ * revamped EDH find routine, dumped old-style.
+ * revamped read-EDH to use mmap and to use
+ copy/read only for the parts we need. The
+ read-EDH buffer is not limited to 32K
+ anymore and can have any length. No realloc
+ need anymore.
+ * opendir does not allocate the cache.buf32k
+ anymore - it does have no need for it. the
+ buffer is still cached for subsequent Open
+ calls. May want to setvbuf later.
+ * a few renamings to be more bits/dirent.h-like,
+ so many things are now called d_name and
+ d_reclen instead of name or next as before.
+ * renamed the package to "zziplib" as being
+ suggested by Tomi.
+ * release 0.10.3
+
+2000-05-26 Guido Draheim <guidod@gmx.de>
+ * -release at link-line for the lib
+ * zzcat.c as a test program, which uncovered
+ a few flaws.
+ * a flaw w/_fd_opendir when being given a
+ non-inited err-return-variable and no
+ error did occur.
+ * the error to errno table was incomplete,
+ and the ZZIP_INFLATE error is superfluous.
+ * zzdir.c as a test program, needs still to
+ be given the full zip-arch name.
+ * changed member names of zzip_dirent to
+ match similar names in dirent and stat,
+ (ie. d_name and st_size) and added furthermore
+ a z_size that returns the compressed size.
+ * little updates to names and comments.
+ * release 0.10.2
+
+2000-05-22 Guido Draheim <guidod@gmx.de>
+ * merge with zip08x-0.9.6 - actually just
+ a bugfix for zzip_fp_open IGNOREPATH -
+ I even applied it in a different way than
+ Tomi did.
+ * bugfixes for zzip_open, it did not always
+ set errno(2) to the value of zzip_errno.
+ * The zzip_read is now separate from
+ zzip_fp_read, so that setting errno(2) is
+ only done in zzip_read, not in the zzip-touching
+ function.
+ * zzip-doc.pl to generate libzzip.html
+ * release 0.10.1
+
+2000-05-21 Guido Draheim <guidod@gmx.de>
+ * drop-in replacements ready for daily use,
+ just use zzip_open with a normal path to
+ a fs file. If that file is not found in
+ a normal fs directory, then the path is
+ splitted into a basepath and a filename,
+ a ".zip" is appended to the basepath to
+ form a zip-arch name, and the filename
+ is then searched inside the zip-arch if
+ that one exists. Very nice for distribution
+ of a subdirectory full of scripts and that
+ is what it is meant for - the PFE will be
+ able to use this one for Forth-files.
+ * have a VERSION file containing "0.10.0" and
+ add some rules to Mk-rules
+ * start with in-source docs that will be used
+ for documenting the lib calls. A jdoc like
+ doc extractor should be able to grok these,
+ I'll see to release docs with the next
+ release, but this time...
+ * make it release 0.10.0 and upload it to
+ pfe.sourceforge.net/pub where it will lurk
+ around until I contacted Tomi. He seems to
+ be currently working on zip08x
+
+2000-05-17 Guido Draheim <guidod@gmx.de>
+ * decided to have it actually called zzip_ and so
+ all of the stuff is going to get renamed again.
+
+2000-05-16 Guido Draheim <guidod@gmx.de>
+ * obtained Tomi's code and made changes so that the
+ resulting library is more portable, esp. the glib
+ usage is being abolished. The name of the library
+ (and package) has been renamed to libunzip and
+ all types, consts and funcs to now carry the unzip_
+ prefix.
+ * autoconf !!!!
+ * drop-in functions that can be made to easily replace
+ dirent and filefd functions.
+
+
+Mon Apr 5 11:23:46 2000 Tomi Ollila (too@iki.fi)
+
+ * Release 0.9.5
+
+ * Made some tiny modifications after Matthew's code.
+
+Sun Apr 4 8:30:00 2000 Matthew D. Campbell (matt@campbellhome.dhs.org)
+
+ * Cleaned up compile warnings in SuSE Linux
+
+ * Cleaned up code for cross-compilation with Xmingw32
+
+ * Modified zipx.h to support linking to C++ apps
+
+Wed Jul 28 11:23:46 1999 Tomi Ollila (too@iki.fi)
+
+ * Release 0.9.4
+
+ * Fixed support for simultaneous open files with each
+ open `ZipFile'.
+
+Thu Jul 22 11:57:46 1999 Tomi Ollila (too@iki.fi)
+
+ * Release 0.9.3
+
+ * Added premilinary README.API.
+
+Sat Jul 10 11:49:58 1999 Tomi Ollila (too@iki.fi)
+
+ * Release 0.9.2
+
+ * Fixed code to read start-of-file offset from local header
+ instead relying directory info is sufficient (were TOO naive
+ about that, the first user reported this library won't work
+ with his archives).
+
+Sun Jun 13 20:40:11 1999 Tomi Ollila (too@iki.fi)
+
+ * Initial release (0.9.1).
diff --git a/Build/source/libs/zziplib/zziplib-src/GNUmakefile b/Build/source/libs/zziplib/zziplib-src/GNUmakefile
new file mode 100644
index 00000000000..860adcbef1b
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/GNUmakefile
@@ -0,0 +1,45 @@
+#! /usr/bin/gmake -f
+
+# the 'all' target is included from the 'configure'd Makefile
+
+default:
+ @ test -f Makefile || test -d build || (set -x ; mkdir build ; cd build && sh ../configure --prefix=$$HOME)
+ @ test -f Makefile || test ! -f build/Makefile || (set -x ; cd build && $(MAKE) all)
+ @ test -f Makefile || test ! -f build/Makefile || echo 'DONE (cd build && make all) - please run (cd build && make check) now'
+ @ test ! -f Makefile || test -f build/Makefile || $(MAKE) all
+ @ test ! -f Makefile || test -f build/Makefile || echo 'DONE make all - please run make check (before make install)'
+
+cm cmake: ; rm -rf build; mkdir build; cd build && cmake .. -DCMAKE_INSTALL_PREFIX:PATH=$$HOME/local
+am autom: ; rm -rf build2; mkdir build2; cd build2 && sh ../configure --prefix=$$HOME/local --enable-sdl
+2: ; cd build2 && $(MAKE) all
+
+new: ; rm -rf build; $(MAKE) default
+
+auto:
+ aclocal -I m4 && autoconf -I m4 && autoheader && automake
+
+boottrap:
+ rm -rf .deps .libs
+ rm -f config.guess config.sub stamp-h.in
+ rm -f install-sh ltconfig ltmain.sh depcomp mkinstalldirs
+ rm -f config.h config.h.in config.log config.cache configure
+ rm -f aclocal.m4 Makefile Makefile.in
+ aclocal
+ autoconf
+ autoheader
+ automake -a -c
+
+-include Makefile
+
+test_%: ; python3 testbuilds.py $@ -vv
+tests: ; python3 testbuilds.py -vv
+
+version:
+ oldv=`sed -e '/zziplib.VERSION/!d' -e 's:.*zziplib.VERSION."::' -e 's:".*::' CMakeLists.txt` \
+ ; oldr=`echo $$oldv | sed -e 's:.*[.]::'` ; newr=`expr $$oldr + 1` \
+ ; newv=`echo $$oldv | sed -e "s:[.]$$oldr\$$:.$$newr:"` \
+ ; echo "$$oldv -> $$newv" \
+ ; sed -i -e "s:$$oldv:$$newv:" zziplib.spec testbuilds.py \
+ ; sed -i -e "s:$$oldv:$$newv:" */CMakeLists.txt \
+ ; sed -i -e "s:$$oldv:$$newv:" CMakeLists.txt \
+ ; git diff -U0
diff --git a/Build/source/libs/zziplib/zziplib-src/Makefile.am b/Build/source/libs/zziplib/zziplib-src/Makefile.am
new file mode 100644
index 00000000000..84edb090d65
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/Makefile.am
@@ -0,0 +1,181 @@
+AUTOMAKE_OPTIONS = 1.4 foreign dist-bzip2
+ACLOCAL_AMFLAGS = -I m4
+WANT_AUTOMAKE = 1.7
+WANT_AUTOCONF = 2.57
+
+DIST_SUBDIRS = zzip zzipwrap bins test docs SDL
+SUBDIRS = zzip zzipwrap bins test docs @SDL@
+
+DISTCLEANFILES = _configs.sed
+
+rpm: dist-bzip2 $(PACKAGE).spec
+ rpmbuild -ta $(PACKAGE)-$(VERSION).tar.bz2
+ test -d ../pub && cp $(PACKAGE)-$(VERSION).tar.bz2 ../pub/
+
+OSC_ROOT = /my/own/osc
+OSC_SRCDIR = $(OSC_ROOT)
+OSC_PROJECT = home:guidod:zziplib-13
+OSC_PACKAGE = $(PACKAGE)
+OSC_SPECFILE = $(top_srcdir)/$(PACKAGE).spec
+OSC_TARBALL = $(PACKAGE)-$(VERSION).tar.bz2
+OSC_BUILDDIR = $(OSC_ROOT)
+OSC_PACKAGECACHEDIR = $(OSC_BUILDDIR)/packagecache
+OSC_BUILDROOT = $(OSC_BUILDDIR)/buildroot
+OSC_REPOSITORY = openSUSE_11.2
+OSC_ARCH = x86_64
+osc-copy:
+ test -s $(OSC_TARBALL)
+ test -s $(OSC_SPECFILE)
+ test -d $(OSC_SRCDIR)
+ test -d $(OSC_SRCDIR)/$(OSC_PROJECT) \
+ || ( cd $(OSC_SRCDIR) && osc co $(OSC_PROJECT) )
+ cd $(OSC_SRCDIR)/$(OSC_PROJECT) && osc up
+ cp $(OSC_TARBALL) $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)
+ cp $(OSC_SPECFILE) $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)
+
+DOIT = :
+osc-ci osc-commit upload-osc: osc-copy
+ tarball=`basename $(OSC_TARBALL)` \
+ ; ls $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.tar.* \
+ | { while read f; do tarname=`basename $$f` \
+ ; if test "$$tarname" != "$$tarball" \
+ ; then echo osc rm -f $$f ; osc rm -f $$f \
+ ; else echo osc add $$f ; osc add $$f || true \
+ ; fi ; done }
+ osc status $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/
+ $(DOIT) osc commit -m "update $(OSC_TARBALL)" $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)
+
+osc-build: osc-copy
+ cd $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/ \
+ BUILD_DESCR=`basename $(OSC_SPECFILE)` ;\
+ ls -l $$SPEC ; \
+ OSC_PACKAGECACHEDIR=$(OSC_PACKAGECACHEDIR) \
+ OSC_BUILD_ROOT=$(OSC_BUILDROOT) \
+ osc build --release=0 --local-package --clean \
+ $(OSC_REPOSITORY) $(OSC_ARCH) $$BUILD_DESCR
+osc-clean:
+ - test -f $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.spec \
+ && rm $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*
+osc-distclean:
+ - test -f $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.spec \
+ && rm -rf $(OSC_SRCDIR)/*
+
+
+indent-check:
+ (cd zzip && $(MAKE) `basename $@`)
+
+doc docs docu clean-doc clean-docs clean-docu zzip.html zzip.xml zzip.pdf \
+man mans manpages htmpages unpack clean-unpack changes.htm pdfs \
+omf install-omf install-doc install-docs install-man3 install-mans \
+upload-sourceforge www:
+ (cd docs && $(MAKE) `basename $@`)
+
+sdl testsdl test-sdl install-sdl :
+ if test -z "$(SDL)"; then echo "skip $@ (no SDL)"; else \
+ (cd SDL && $(MAKE) `basename $@`) ; fi
+
+check-test0 check-test1 check-zzdir check-zzcat \
+check-zzxor check-zzxordir check-zzxorcat \
+check-sfx check-readme check-tests tests:
+ (cd test && $(MAKE) `basename $@`)
+
+test_%: ; cd test && $(MAKE) `basename $@`
+
+MSVC8 = msvc8/README.TXT msvc8/zip.exe msvc8/test1.zip msvc8/test.zip \
+msvc8/zzdir.vcproj msvc8/zzipself.vcproj msvc8/zzip.vcproj \
+msvc8/zziplib.sln msvc8/zzipsetstub.sln msvc8/zzobfuscated.sln \
+msvc8/zziplib.vcproj msvc8/zzipsetstub.vcproj msvc8/zzobfuscated.vcproj \
+msvc8/zzcat.sln msvc8/zzipself.bat msvc8/zzip.sln \
+msvc8/zzcat.vcproj msvc8/zzipself.sln msvc8/zziptest.sln \
+msvc8/zzdir.sln msvc8/zzipself.txt msvc8/zziptest.vcproj \
+ msvc8/zzipfseeko.vcproj msvc8/zzipmmapped.vcproj
+
+MSVC7 = msvc7/pkzip.exe msvc7/test1.zip msvc7/test.zip \
+msvc7/zzdir.vcproj msvc7/zzipself.vcproj msvc7/zzip.vcproj \
+msvc7/zziplib.sln msvc7/zzipsetstub.sln msvc7/zzobfuscated.sln \
+msvc7/zziplib.vcproj msvc7/zzipsetstub.vcproj msvc7/zzobfuscated.vcproj \
+msvc7/zzcat.sln msvc7/zzipself.bat msvc7/zzip.sln \
+msvc7/zzcat.vcproj msvc7/zzipself.sln msvc7/zziptest.sln \
+msvc7/zzdir.sln msvc7/zzipself.txt msvc7/zziptest.vcproj
+
+MSVC6 = \
+msvc6/zzcat.dsp msvc6/zziplib.dsp msvc6/zzipwrap.dsp \
+msvc6/zzdir.dsp msvc6/zziplib.dsw msvc6/zzobfuscated.dsp \
+msvc6/zziptest.dsp msvc6/zzip.dsp
+
+EXTRA_DIST = zziplib.spec zzipback.sed Makefile.mk \
+ $(MSVC8) $(MSVC7) $(MSVC6) $(am__aclocal_m4_deps)
+
+PHONY = auto boottrap rpm doc docs man manpages htmpages sdl testsdl \
+ comp compats msvc6 msvc7
+# ------------------------------------------------------------------------
+
+test-comp:
+ test ! -d testing || rm -r testing
+ mkdir testing
+ (cd testing && tar xzvf ../$(PACKAGE)-$(VERSION).tar.gz)
+ (cd "testing/$(PACKAGE)-$(VERSION)/zziplib" && sh configure)
+ $(MAKE) -C "testing/$(PACKAGE)-$(VERSION)/zziplib"
+ $(MAKE) -C "testing/$(PACKAGE)-$(VERSION)/zziplib" check
+
+clean-comp:
+ test ! -d testing || rm -r testing
+
+msvc :
+ mkdir bin
+ mkdir lib
+ mkdir include
+ mkdir include/zzip
+ cp $(srcdir)/msvc6/Release/*.exe bin/
+ cp $(srcdir)/msvc6/Release/*.dll bin/
+ cp $(srcdir)/msvc6/Release/*.lib lib/
+ cp $(srcdir)/zzip/*.h include/zzip/
+ zip -9r $(srcdir)/$(PACKAGE)-$(VERSION)-msvc6-bin.zip bin/
+ zip -9r $(srcdir)/$(PACKAGE)-$(VERSION)-msvc6-lib.zip lib/ include/
+ rm -r bin lib include
+
+# ------------------------------------------------------------------ zzip64
+_FILE_OFFSET64 = -D_ZZIP_LARGEFILE -D_FILE_OFFSET_BITS=64
+_RELEASEINFO64 = "RELEASE_INFO=-release 0-64"
+
+zzip64-setup: zzip64-setup.tmp
+zzip64-setup.tmp : zzip/Makefile zzip/_config.h zzip/.deps/* zzip/zziplib.pc
+ - mkdir zzip64
+ cp -a zzip/Makefile zzip/_config.h zzip/.deps/ zzip/zziplib.pc zzip64/
+ date > zzip64.dir
+zzip64-build: zzip64-build.tmp
+zzip64-build.tmp : zzip64-setup.tmp $(top_srcdir)/zzip/*
+ cd zzip64 && $(MAKE) "AM_CFLAGS=$(_FILE_OFFSET64)" $(_RELEASEINFO64)
+zzip64-install: zzip64-install.tmp
+zzip64-install.tmp : zzip64-build.tmp
+ cd zzip64 && $(MAKE) install $(_RELEASEINFO64)
+ cd $(DESTDIR)$(libdir) && mv libzzip.so libzzip64.so
+ - cd $(DESTDIR)$(libdir) && mv libzzip.a libzzip64.a
+ cd $(DESTDIR)$(libdir) && \
+ sed -e 's/zzip.so/zzip64.so/' -e 's/zzip.a/zzip64.a/' \
+ libzzip.la > libzzip64.la
+ cd $(DESTDIR)$(libdir)/pkgconfig && \
+ sed -e 's/largefile=/largefile= %_FILE_OFFSET64/' \
+ -e 's/-lzzip/-lzzip64/' -e 's/zziplib/zziplib64/' \
+ zziplib.pc > zziplib64.pc
+zzip32-postinstall:
+ cd $(DESTDIR)$(libdir) && mv libzzip.so libzzip32.so
+ - cd $(DESTDIR)$(libdir) && mv libzzip.a libzzip32.a
+ cd $(DESTDIR)$(libdir) && ln -s libzzip32.so libzzip.so
+ - cd $(DESTDIR)$(libdir) && ln -s libzzip32.a libzzip.a
+ cd $(DESTDIR)$(libdir) && \
+ sed -e 's/zzip.so/zzip32.so/' -e 's/zzip.a/zzip32.a/' \
+ libzzip.la > libzzip32.la
+ cd $(DESTDIR)$(libdir)/pkgconfig && \
+ sed -e 's/-lzzip/-lzzip32/' -e 's/zziplib/zziplib32/' \
+ zziplib.pc > zziplib32.pc
+zzip-postinstall:
+ : "the 12.8x and 11.8x and 10.8x packages are all the same actually"
+ cd $(DESTDIR)$(libdir) || exit 1 \
+ ; for i in libzzip*.so.1? ; do : \
+ ; v10=`echo $$i | sed -e "s/.so.../.so.10/"` \
+ ; v11=`echo $$i | sed -e "s/.so.../.so.11/"` \
+ ; v12=`echo $$i | sed -e "s/.so.../.so.12/"` \
+ ; test ! -e "$$v10" && test -e "$$v12" && test "$$v10" != "$$v12" && ln -s "$$v12" "$$v10" \
+ ; test ! -e "$$v12" && test -e "$$v10" && test "$$v12" != "$$v10" && ln -s "$$v10" "$$v12" \
+ ; test "$$v10" != "$$v11" && ln -s "$$v10" "$$v11" || true; done
diff --git a/Build/source/libs/zziplib/zziplib-src/Makefile.in b/Build/source/libs/zziplib/zziplib-src/Makefile.in
new file mode 100644
index 00000000000..f810e4f0e53
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/Makefile.in
@@ -0,0 +1,1051 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
+ $(top_srcdir)/m4/ac_set_default_paths_system.m4 \
+ $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \
+ $(top_srcdir)/m4/acx_restrict.m4 \
+ $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \
+ $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \
+ $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \
+ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
+ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
+ $(top_srcdir)/m4/ax_check_enable_debug.m4 \
+ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
+ $(top_srcdir)/m4/ax_expand_prefix.m4 \
+ $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
+ $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
+ $(top_srcdir)/m4/ax_pax_tar.m4 \
+ $(top_srcdir)/m4/ax_prefix_config_h.m4 \
+ $(top_srcdir)/m4/ax_set_version_info.m4 \
+ $(top_srcdir)/m4/ax_spec_file.m4 \
+ $(top_srcdir)/m4/ax_spec_package_version.m4 \
+ $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \
+ $(top_srcdir)/m4/ax_warning_default_pkgconfig.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/patch_libtool_on_darwin_zsh_overquoting.m4 \
+ $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \
+ $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+ $(LISP)config.h.in
+# 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__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ $(top_srcdir)/uses/compile $(top_srcdir)/uses/config.guess \
+ $(top_srcdir)/uses/config.sub $(top_srcdir)/uses/install-sh \
+ $(top_srcdir)/uses/ltmain.sh $(top_srcdir)/uses/missing \
+ $(top_srcdir)/uses/mkinstalldirs COPYING.LIB ChangeLog README \
+ TODO uses/compile uses/config.guess uses/config.sub \
+ uses/depcomp uses/install-sh uses/ltmain.sh uses/missing \
+ uses/mkinstalldirs
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
+GZIP_ENV = --best
+DIST_TARGETS = dist-bzip2 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@
+ASAN_CFLAGS = @ASAN_CFLAGS@
+ASAN_LIBS = @ASAN_LIBS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONFIG_FILES = @CONFIG_FILES@
+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@
+GNUTAR = @GNUTAR@
+GREP = @GREP@
+GTAR = @GTAR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKZIP = @MKZIP@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PAX = @PAX@
+PAX_TAR_CREATE = @PAX_TAR_CREATE@
+PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+RANLIB = @RANLIB@
+RELEASE_INFO = @RELEASE_INFO@
+RESOLVES = @RESOLVES@
+SDL = @SDL@
+SDL_GENERATE = @SDL_GENERATE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+THREAD_SAFE = @THREAD_SAFE@
+VERSION = @VERSION@
+VERSION_INFO = @VERSION_INFO@
+XMLTO = @XMLTO@
+ZIPTESTS = @ZIPTESTS@
+ZLIB_INCL = @ZLIB_INCL@
+ZLIB_LDIR = @ZLIB_LDIR@
+ZLIB_VERSION = @ZLIB_VERSION@
+ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+aclocaldir = @aclocaldir@
+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@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgconfig_libdir = @pkgconfig_libdir@
+pkgconfig_libfile = @pkgconfig_libfile@
+pkgconfigdir = @pkgconfigdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = 1.4 foreign dist-bzip2
+ACLOCAL_AMFLAGS = -I m4
+WANT_AUTOMAKE = 1.7
+WANT_AUTOCONF = 2.57
+DIST_SUBDIRS = zzip zzipwrap bins test docs SDL
+SUBDIRS = zzip zzipwrap bins test docs @SDL@
+DISTCLEANFILES = _configs.sed
+OSC_ROOT = /my/own/osc
+OSC_SRCDIR = $(OSC_ROOT)
+OSC_PROJECT = home:guidod:zziplib-13
+OSC_PACKAGE = $(PACKAGE)
+OSC_SPECFILE = $(top_srcdir)/$(PACKAGE).spec
+OSC_TARBALL = $(PACKAGE)-$(VERSION).tar.bz2
+OSC_BUILDDIR = $(OSC_ROOT)
+OSC_PACKAGECACHEDIR = $(OSC_BUILDDIR)/packagecache
+OSC_BUILDROOT = $(OSC_BUILDDIR)/buildroot
+OSC_REPOSITORY = openSUSE_11.2
+OSC_ARCH = x86_64
+DOIT = :
+MSVC8 = msvc8/README.TXT msvc8/zip.exe msvc8/test1.zip msvc8/test.zip \
+msvc8/zzdir.vcproj msvc8/zzipself.vcproj msvc8/zzip.vcproj \
+msvc8/zziplib.sln msvc8/zzipsetstub.sln msvc8/zzobfuscated.sln \
+msvc8/zziplib.vcproj msvc8/zzipsetstub.vcproj msvc8/zzobfuscated.vcproj \
+msvc8/zzcat.sln msvc8/zzipself.bat msvc8/zzip.sln \
+msvc8/zzcat.vcproj msvc8/zzipself.sln msvc8/zziptest.sln \
+msvc8/zzdir.sln msvc8/zzipself.txt msvc8/zziptest.vcproj \
+ msvc8/zzipfseeko.vcproj msvc8/zzipmmapped.vcproj
+
+MSVC7 = msvc7/pkzip.exe msvc7/test1.zip msvc7/test.zip \
+msvc7/zzdir.vcproj msvc7/zzipself.vcproj msvc7/zzip.vcproj \
+msvc7/zziplib.sln msvc7/zzipsetstub.sln msvc7/zzobfuscated.sln \
+msvc7/zziplib.vcproj msvc7/zzipsetstub.vcproj msvc7/zzobfuscated.vcproj \
+msvc7/zzcat.sln msvc7/zzipself.bat msvc7/zzip.sln \
+msvc7/zzcat.vcproj msvc7/zzipself.sln msvc7/zziptest.sln \
+msvc7/zzdir.sln msvc7/zzipself.txt msvc7/zziptest.vcproj
+
+MSVC6 = \
+msvc6/zzcat.dsp msvc6/zziplib.dsp msvc6/zzipwrap.dsp \
+msvc6/zzdir.dsp msvc6/zziplib.dsw msvc6/zzobfuscated.dsp \
+msvc6/zziptest.dsp msvc6/zzip.dsp
+
+EXTRA_DIST = zziplib.spec zzipback.sed Makefile.mk \
+ $(MSVC8) $(MSVC7) $(MSVC6) $(am__aclocal_m4_deps)
+
+PHONY = auto boottrap rpm doc docs man manpages htmpages sdl testsdl \
+ comp compats msvc6 msvc7
+
+
+# ------------------------------------------------------------------ zzip64
+_FILE_OFFSET64 = -D_ZZIP_LARGEFILE -D_FILE_OFFSET_BITS=64
+_RELEASEINFO64 = "RELEASE_INFO=-release 0-64"
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+am--refresh: Makefile
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+ @test -f $@ || rm -f stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool config.lt
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
+ $(am__post_remove_distdir)
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__post_remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__post_remove_distdir)
+
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__post_remove_distdir)
+
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=../.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__post_remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) all install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--refresh check check-am clean clean-cscope clean-generic \
+ clean-libtool cscope cscopelist-am ctags ctags-am dist \
+ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
+ dist-xz dist-zip distcheck distclean distclean-generic \
+ distclean-hdr distclean-libtool distclean-tags distcleancheck \
+ distdir distuninstallcheck dvi dvi-am html html-am info \
+ info-am install install-am install-data install-data-am \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+rpm: dist-bzip2 $(PACKAGE).spec
+ rpmbuild -ta $(PACKAGE)-$(VERSION).tar.bz2
+ test -d ../pub && cp $(PACKAGE)-$(VERSION).tar.bz2 ../pub/
+osc-copy:
+ test -s $(OSC_TARBALL)
+ test -s $(OSC_SPECFILE)
+ test -d $(OSC_SRCDIR)
+ test -d $(OSC_SRCDIR)/$(OSC_PROJECT) \
+ || ( cd $(OSC_SRCDIR) && osc co $(OSC_PROJECT) )
+ cd $(OSC_SRCDIR)/$(OSC_PROJECT) && osc up
+ cp $(OSC_TARBALL) $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)
+ cp $(OSC_SPECFILE) $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)
+osc-ci osc-commit upload-osc: osc-copy
+ tarball=`basename $(OSC_TARBALL)` \
+ ; ls $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.tar.* \
+ | { while read f; do tarname=`basename $$f` \
+ ; if test "$$tarname" != "$$tarball" \
+ ; then echo osc rm -f $$f ; osc rm -f $$f \
+ ; else echo osc add $$f ; osc add $$f || true \
+ ; fi ; done }
+ osc status $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/
+ $(DOIT) osc commit -m "update $(OSC_TARBALL)" $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)
+
+osc-build: osc-copy
+ cd $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/ \
+ BUILD_DESCR=`basename $(OSC_SPECFILE)` ;\
+ ls -l $$SPEC ; \
+ OSC_PACKAGECACHEDIR=$(OSC_PACKAGECACHEDIR) \
+ OSC_BUILD_ROOT=$(OSC_BUILDROOT) \
+ osc build --release=0 --local-package --clean \
+ $(OSC_REPOSITORY) $(OSC_ARCH) $$BUILD_DESCR
+osc-clean:
+ - test -f $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.spec \
+ && rm $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*
+osc-distclean:
+ - test -f $(OSC_SRCDIR)/$(OSC_PROJECT)/$(OSC_PACKAGE)/*.spec \
+ && rm -rf $(OSC_SRCDIR)/*
+
+indent-check:
+ (cd zzip && $(MAKE) `basename $@`)
+
+doc docs docu clean-doc clean-docs clean-docu zzip.html zzip.xml zzip.pdf \
+man mans manpages htmpages unpack clean-unpack changes.htm pdfs \
+omf install-omf install-doc install-docs install-man3 install-mans \
+upload-sourceforge www:
+ (cd docs && $(MAKE) `basename $@`)
+
+sdl testsdl test-sdl install-sdl :
+ if test -z "$(SDL)"; then echo "skip $@ (no SDL)"; else \
+ (cd SDL && $(MAKE) `basename $@`) ; fi
+
+check-test0 check-test1 check-zzdir check-zzcat \
+check-zzxor check-zzxordir check-zzxorcat \
+check-sfx check-readme check-tests tests:
+ (cd test && $(MAKE) `basename $@`)
+
+test_%: ; cd test && $(MAKE) `basename $@`
+# ------------------------------------------------------------------------
+
+test-comp:
+ test ! -d testing || rm -r testing
+ mkdir testing
+ (cd testing && tar xzvf ../$(PACKAGE)-$(VERSION).tar.gz)
+ (cd "testing/$(PACKAGE)-$(VERSION)/zziplib" && sh configure)
+ $(MAKE) -C "testing/$(PACKAGE)-$(VERSION)/zziplib"
+ $(MAKE) -C "testing/$(PACKAGE)-$(VERSION)/zziplib" check
+
+clean-comp:
+ test ! -d testing || rm -r testing
+
+msvc :
+ mkdir bin
+ mkdir lib
+ mkdir include
+ mkdir include/zzip
+ cp $(srcdir)/msvc6/Release/*.exe bin/
+ cp $(srcdir)/msvc6/Release/*.dll bin/
+ cp $(srcdir)/msvc6/Release/*.lib lib/
+ cp $(srcdir)/zzip/*.h include/zzip/
+ zip -9r $(srcdir)/$(PACKAGE)-$(VERSION)-msvc6-bin.zip bin/
+ zip -9r $(srcdir)/$(PACKAGE)-$(VERSION)-msvc6-lib.zip lib/ include/
+ rm -r bin lib include
+
+zzip64-setup: zzip64-setup.tmp
+zzip64-setup.tmp : zzip/Makefile zzip/_config.h zzip/.deps/* zzip/zziplib.pc
+ - mkdir zzip64
+ cp -a zzip/Makefile zzip/_config.h zzip/.deps/ zzip/zziplib.pc zzip64/
+ date > zzip64.dir
+zzip64-build: zzip64-build.tmp
+zzip64-build.tmp : zzip64-setup.tmp $(top_srcdir)/zzip/*
+ cd zzip64 && $(MAKE) "AM_CFLAGS=$(_FILE_OFFSET64)" $(_RELEASEINFO64)
+zzip64-install: zzip64-install.tmp
+zzip64-install.tmp : zzip64-build.tmp
+ cd zzip64 && $(MAKE) install $(_RELEASEINFO64)
+ cd $(DESTDIR)$(libdir) && mv libzzip.so libzzip64.so
+ - cd $(DESTDIR)$(libdir) && mv libzzip.a libzzip64.a
+ cd $(DESTDIR)$(libdir) && \
+ sed -e 's/zzip.so/zzip64.so/' -e 's/zzip.a/zzip64.a/' \
+ libzzip.la > libzzip64.la
+ cd $(DESTDIR)$(libdir)/pkgconfig && \
+ sed -e 's/largefile=/largefile= %_FILE_OFFSET64/' \
+ -e 's/-lzzip/-lzzip64/' -e 's/zziplib/zziplib64/' \
+ zziplib.pc > zziplib64.pc
+zzip32-postinstall:
+ cd $(DESTDIR)$(libdir) && mv libzzip.so libzzip32.so
+ - cd $(DESTDIR)$(libdir) && mv libzzip.a libzzip32.a
+ cd $(DESTDIR)$(libdir) && ln -s libzzip32.so libzzip.so
+ - cd $(DESTDIR)$(libdir) && ln -s libzzip32.a libzzip.a
+ cd $(DESTDIR)$(libdir) && \
+ sed -e 's/zzip.so/zzip32.so/' -e 's/zzip.a/zzip32.a/' \
+ libzzip.la > libzzip32.la
+ cd $(DESTDIR)$(libdir)/pkgconfig && \
+ sed -e 's/-lzzip/-lzzip32/' -e 's/zziplib/zziplib32/' \
+ zziplib.pc > zziplib32.pc
+zzip-postinstall:
+ : "the 12.8x and 11.8x and 10.8x packages are all the same actually"
+ cd $(DESTDIR)$(libdir) || exit 1 \
+ ; for i in libzzip*.so.1? ; do : \
+ ; v10=`echo $$i | sed -e "s/.so.../.so.10/"` \
+ ; v11=`echo $$i | sed -e "s/.so.../.so.11/"` \
+ ; v12=`echo $$i | sed -e "s/.so.../.so.12/"` \
+ ; test ! -e "$$v10" && test -e "$$v12" && test "$$v10" != "$$v12" && ln -s "$$v12" "$$v10" \
+ ; test ! -e "$$v12" && test -e "$$v10" && test "$$v12" != "$$v10" && ln -s "$$v10" "$$v12" \
+ ; test "$$v10" != "$$v11" && ln -s "$$v10" "$$v11" || true; done
+
+# 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/Build/source/libs/zziplib/zziplib-src/README b/Build/source/libs/zziplib/zziplib-src/README
new file mode 100644
index 00000000000..cc6cd58a62a
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/README
@@ -0,0 +1,48 @@
+PROJECT
+ The zziplib provides read access to zipped files in a zip-archive,
+ using compression based solely on free algorithms provided by zlib.
+ It also provides a functionality to overlay the archive filesystem
+ with the filesystem of the operating system environment.
+
+AUTHOR
+ The project was originally written by Tomi Ollila, later largely
+ rewritten by Guido Draheim, and extended with contributions in
+ the years to follow. Guido Draheim <guidod@gmx.de> holds the full
+ copyright to the zziplib sources.
+
+COPYING
+ The zziplib may be used freely under the restrictions of the
+ GNU Lesser General Public License version 2 or later. Alternatively
+ the Mozilla Public license can be chosen. The sources are under
+ a dual license, as long as the MPL hint is not removed, the modified
+ files will be again under a dual license for the final recipient.
+
+LICENSING
+ If you can not use a dynalinked library according to LGPL rules,
+ then look at docs/copying.htm for a few hints. Generally the LGPL
+ has a way for staticlinking as well as the MPL has a way. Anyway,
+ special (paid) licenses can be negotiated with the copyright holder.
+
+HOMEPAGE
+ The zziplib project has moved to GitHub where you can find the
+ last release tags now => https://github.com/gdraheim/zziplib
+ The zziplib project was originally hosted at SourceForge with
+ the documentation at http://zziplib.sf.net - this is a bit
+ outdated but the API has not changed much since then. To get
+ the latest release announcements, watch the GitHub project.
+
+INSTALLATION
+ The zziplib sources are built with gnu autotools and they should
+ be easy to install on unixish systems via the usual sequence of
+ `configure && make && make check && make install`. Many distributors
+ ship prebuilt packages e.g. in rpm format. Additionally there are
+ MSVC project files shipped along for usage with the Microsoft
+ VisualC series of compilers. There should be no problem either
+ when crosscompiling the zziplib for a third host platform.
+
+MAINTENANCE
+ The zziplib library is intentionally a lightweight interface to
+ zip files. The author take patches but please consider to put
+ complex extensions into separate modules rather than implanting them
+ right into the core of the library engine. All Patches and Bug Reports
+ should be sent to Guido Draheim <guidod@gmx.de>.
diff --git a/Build/source/libs/zziplib/zziplib-src/README.MD b/Build/source/libs/zziplib/zziplib-src/README.MD
new file mode 100644
index 00000000000..a3c64d79948
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/README.MD
@@ -0,0 +1,49 @@
+... **please switch to 'cmake' based builds** ...
+
+The zziplib provides read access to zipped files in a zip-archive,
+using compression based solely on free algorithms provided by zlib.
+It also provides a functionality to overlay the archive filesystem
+with the filesystem of the operating system environment.
+
+The origins of the project go back to the 1999 when Tomi Ollila
+did explore the details of the zip format. It was adopted by
+Guido Draheim in 2000 making the source code portable to many
+platforms. Originally maintained on Sourceforge it moved to
+GitHub in 2017 for easier collobaration with other projects.
+
+> also check out the original [README](README) file
+
+... test status [(master)](https://github.com/gdraheim/zziplib/tree/master): [![Build Status](https://dev.azure.com/gdraheim/gdraheim/_apis/build/status/gdraheim.zziplib%20(1)?branchName=master)](https://dev.azure.com/gdraheim/gdraheim/_build/latest?definitionId=4&branchName=master) ... ([develop/tests/zziptests.py](https://github.com/gdraheim/zziplib/blob/develop/test/zziptests.py))
+
+**DOCUMENTATION**
+
+* for more details, see http://zziplib.sourceforge.net/
+* [copying](docs/copying.htm)
+ [developer](docs/developer.htm)
+ [functions](docs/functions.htm)
+ [php](docs/zip-php.htm)
+ [referitals](docs/referentials.htm)
+ [future](docs/future.htm)
+ [notes](docs/notes.htm)
+ [64on32](docs/64on32.htm)
+ [download](docs/download.htm)
+ [history](docs/history.htm)
+* [zzip:](docs/zzip-index.htm)
+ [basics](docs/zzip-basics.htm)
+ [api](docs/zzip-api.htm)
+ [crypt](docs/zzip-crypt.htm)
+ [cryptoid](docs/zzip-cryptoid.htm)
+ [extio](docs/zzip-extio.htm)
+ [extras](docs/zzip-extras.htm)
+ [file](docs/zzip-file.htm)
+ [parse](docs/zzip-parse.htm)
+ [sdl-rwops](docs/zzip-rwops.htm)
+ [xor](docs/zzip-xor.htm)
+ [zip](docs/zzip-zip.htm)
+ [sfx-make](docs/sfx-make.htm)
+* [zziplib](docs/zziplib.html)
+ [mmapped](docs/mmapped.htm)
+ [fseeko](docs/fseeko.htm)
+ [download](docs/download.htm)
+ [faq](docs/faq.htm)
+ (outdated in the source tree)
diff --git a/Build/source/libs/zziplib/zziplib-src/SDL/CMakeLists.txt b/Build/source/libs/zziplib/zziplib-src/SDL/CMakeLists.txt
new file mode 100644
index 00000000000..7ceba4acdaa
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/SDL/CMakeLists.txt
@@ -0,0 +1,67 @@
+cmake_minimum_required (VERSION 3.1)
+project(zzipsdl VERSION "0.13.71" LANGUAGES C)
+
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE Release)
+endif(NOT CMAKE_BUILD_TYPE)
+
+include ( GNUInstallDirs )
+include ( FindPkgConfig )
+
+# options ########################################################
+option(BUILD_SHARED_LIBS "Build a shared library" ON)
+option(BUILD_STATIC_LIBS "Build the static library" OFF)
+option(BUILD_TESTS "Build test programs" OFF)
+option(MSVC_STATIC_RUNTIME "Build with static runtime libs (/MT)" ON)
+
+# Zlib library needed
+find_package ( ZLIB REQUIRED )
+# pkg_search_module ( ZZIP zzip )
+pkg_search_module ( SDL sdl2)
+
+# targets ########################################################
+set(ZZIPSDL_SRCS
+ SDL_rwops_zzip.c)
+
+set(ZZIPSDL_HDRS
+ SDL_rwops_zzip.h)
+
+set(ZZCATSDL_SRCS
+ ${ZZIPSDL_SRCS}
+ SDL_rwops_zzcat.c)
+
+if(SDL_FOUND)
+add_executable(zzcatsdl ${ZZCATSDL_SRCS} )
+target_link_libraries(zzcatsdl libzzip "${SDL_LIBRARIES}" ZLIB::ZLIB)
+target_include_directories(zzcatsdl PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}" "${SDL_INCLUDE_DIRS}")
+endif()
+
+# install ########################################################
+if(SDL_FOUND)
+set(zzipsdldir "${CMAKE_INSTALL_INCLUDEDIR}/SDL_rwops_zzip")
+install(FILES ${ZZIPSDL_SRCS} ${ZZIPSDL_HDRS}
+ DESTINATION ${zzipsdldir})
+endif()
+
+# pkgconfig ######################################################
+
+if(SDL_FOUND)
+if(UNIX)
+join_paths(libdir "\${prefix}" "${CMAKE_INSTALL_LIBDIR}")
+join_paths(includedir "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
+add_custom_command(OUTPUT SDL_rwops_zzip.pc
+ COMMAND ${BASH} -c "echo 'prefix=${CMAKE_INSTALL_PREFIX}' > SDL_rwops_zzip.pc"
+ COMMAND ${BASH} -c "echo 'zzipsdldir=\${prefix}/${zzipsdldir}' >> SDL_rwops_zzip.pc"
+ COMMAND ${BASH} -c "echo '' >> SDL_rwops_zzip.pc"
+ COMMAND ${BASH} -c "echo 'Name: SDL_rwops_zzip' >> SDL_rwops_zzip.pc"
+ COMMAND ${BASH} -c "echo 'Version: ${PROJECT_VERSION}' >> SDL_rwops_zzip.pc"
+ COMMAND ${BASH} -c "echo 'Description: SDL_rwops for ZZipLib' >> SDL_rwops_zzip.pc"
+ COMMAND ${BASH} -c "echo 'Requires: sdl, zziplib' >> SDL_rwops_zzip.pc"
+ COMMAND ${BASH} -c "echo 'Cflags: -I\${zzipsdldir}' >> SDL_rwops_zzip.pc"
+ VERBATIM)
+add_custom_target(pkgconfig-sdl ALL DEPENDS SDL_rwops_zzip.pc)
+
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/SDL_rwops_zzip.pc
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" )
+endif()
+endif()
diff --git a/Build/source/libs/zziplib/zziplib-src/SDL/Makefile.am b/Build/source/libs/zziplib/zziplib-src/SDL/Makefile.am
new file mode 100644
index 00000000000..c66d443a567
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/SDL/Makefile.am
@@ -0,0 +1,57 @@
+AUTOMAKE_OPTIONS = 1.4 foreign
+AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2
+
+zzipsdldir = ${includedir}/SDL_rwops_zzip
+zzipsdl_DATA = SDL_rwops_zzip.c SDL_rwops_zzip.h
+
+EXTRA_DIST = $(sdl_DATA)
+check_PROGRAMS = zzcatsdl
+
+zzcatsdl_SOURCES = SDL_rwops_zzcat.c SDL_rwops_zzip.c
+ZZIP_CFLAGS= `export PKG_CONFIG_PATH=../zzip; $(PKG_CONFIG) zziplib --cflags`
+ZZIP_LIBS= `export PKG_CONFIG_PATH=../zzip; $(PKG_CONFIG) zziplib --libs`
+SDL_CFLAGS= `export PKG_CONFIG_PATH=.; $(PKG_CONFIG) sdl --cflags`
+SDL_LIBS= `export PKG_CONFIG_PATH=.; $(PKG_CONFIG) sdl --libs`
+CFLAGS= -I$(srcdir) $(ZZIP_CFLAGS) $(SDL_CFLAGS)
+LIBS= $(ZZIP_LIBS) $(SDL_LIBS)
+
+default: test-sdl
+*.$(OBJEXT): ../zzip/zziplib.pc
+../zzip/zziplib.pc : ../zzip/Makefile
+ cd ../zzip && $(MAKE) zziplib.pc
+
+test.zip : @top_srcdir@/test/test.zip
+ $(LN_S) $? $@
+testsdl test-sdl : test.zip zzcatsdl$(EXEEXT)
+ ./zzcatsdl$(EXEEXT) test/README > test.out
+ diff -q @top_srcdir@/README test.out && rm test.out
+
+all: @SDL_GENERATE@
+sdl : all
+install-sdl : install-data # and not the binary
+
+CLEANFILES = *.pc *.omf
+# ----------------------------------------------------------------------
+# we do not install a library, so this about equivalent to some SDL.pc
+pkgconfigdir=$(libdir)/pkgconfig
+pkgconfig_HEADERS= SDL_rwops_zzip.pc
+ERRNULL= 2>/dev/null
+
+SDL_rwops_zzip.pc : Makefile
+ @ echo 'prefix=$(prefix)' >$@
+ @ echo 'zzipsdldir=$(zzipsdldir)' >>$@
+ @ echo " " >>$@
+ @ echo "Name: SDL_rwops_zzip" >>$@
+ @ echo "Version: $(VERSION)" >>$@
+ @ echo "Description: SDL_rwops for ZZipLib" >>$@
+ echo 'Requires: sdl, zziplib' >>$@
+ echo 'Cflags: -I$${zzipsdldir}' >>$@
+
+sdl-pc : sdl-uninstalled.pc
+sdl-uninstalled.pc : Makefile
+ @ echo "prefix=`sdl-config --prefix`" >$@
+ @ echo "Name: sdl" >>$@
+ @ echo "Version: `sdl-config --version`" >>$@
+ @ echo "Description: sdl - Simple DirectMedia Layer" >>$@
+ echo "Libs: `sdl-config --libs`" >> $@
+ echo "Cflags: `sdl-config --cflags`" >>$@
diff --git a/Build/source/libs/zziplib/zziplib-src/SDL/Makefile.in b/Build/source/libs/zziplib/zziplib-src/SDL/Makefile.in
new file mode 100644
index 00000000000..1eff3eaf5ca
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/SDL/Makefile.in
@@ -0,0 +1,775 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+check_PROGRAMS = zzcatsdl$(EXEEXT)
+subdir = SDL
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
+ $(top_srcdir)/m4/ac_set_default_paths_system.m4 \
+ $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \
+ $(top_srcdir)/m4/acx_restrict.m4 \
+ $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \
+ $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \
+ $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \
+ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
+ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
+ $(top_srcdir)/m4/ax_check_enable_debug.m4 \
+ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
+ $(top_srcdir)/m4/ax_expand_prefix.m4 \
+ $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
+ $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
+ $(top_srcdir)/m4/ax_pax_tar.m4 \
+ $(top_srcdir)/m4/ax_prefix_config_h.m4 \
+ $(top_srcdir)/m4/ax_set_version_info.m4 \
+ $(top_srcdir)/m4/ax_spec_file.m4 \
+ $(top_srcdir)/m4/ax_spec_package_version.m4 \
+ $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \
+ $(top_srcdir)/m4/ax_warning_default_pkgconfig.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/patch_libtool_on_darwin_zsh_overquoting.m4 \
+ $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \
+ $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(pkgconfig_HEADERS) \
+ $(am__DIST_COMMON)
+mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am_zzcatsdl_OBJECTS = SDL_rwops_zzcat.$(OBJEXT) \
+ SDL_rwops_zzip.$(OBJEXT)
+zzcatsdl_OBJECTS = $(am_zzcatsdl_OBJECTS)
+zzcatsdl_LDADD = $(LDADD)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/uses/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(zzcatsdl_SOURCES)
+DIST_SOURCES = $(zzcatsdl_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(zzipsdldir)" \
+ "$(DESTDIR)$(pkgconfigdir)"
+DATA = $(zzipsdl_DATA)
+HEADERS = $(pkgconfig_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/uses/depcomp \
+ $(top_srcdir)/uses/mkinstalldirs
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+ASAN_CFLAGS = @ASAN_CFLAGS@
+ASAN_LIBS = @ASAN_LIBS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = -I$(srcdir) $(ZZIP_CFLAGS) $(SDL_CFLAGS)
+CONFIG_FILES = @CONFIG_FILES@
+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@
+GNUTAR = @GNUTAR@
+GREP = @GREP@
+GTAR = @GTAR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = $(ZZIP_LIBS) $(SDL_LIBS)
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKZIP = @MKZIP@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PAX = @PAX@
+PAX_TAR_CREATE = @PAX_TAR_CREATE@
+PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+RANLIB = @RANLIB@
+RELEASE_INFO = @RELEASE_INFO@
+RESOLVES = @RESOLVES@
+SDL = @SDL@
+SDL_GENERATE = @SDL_GENERATE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+THREAD_SAFE = @THREAD_SAFE@
+VERSION = @VERSION@
+VERSION_INFO = @VERSION_INFO@
+XMLTO = @XMLTO@
+ZIPTESTS = @ZIPTESTS@
+ZLIB_INCL = @ZLIB_INCL@
+ZLIB_LDIR = @ZLIB_LDIR@
+ZLIB_VERSION = @ZLIB_VERSION@
+ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+aclocaldir = @aclocaldir@
+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@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgconfig_libdir = @pkgconfig_libdir@
+pkgconfig_libfile = @pkgconfig_libfile@
+# ----------------------------------------------------------------------
+# we do not install a library, so this about equivalent to some SDL.pc
+pkgconfigdir = $(libdir)/pkgconfig
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = 1.4 foreign
+AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2
+zzipsdldir = ${includedir}/SDL_rwops_zzip
+zzipsdl_DATA = SDL_rwops_zzip.c SDL_rwops_zzip.h
+EXTRA_DIST = $(sdl_DATA)
+zzcatsdl_SOURCES = SDL_rwops_zzcat.c SDL_rwops_zzip.c
+ZZIP_CFLAGS = `export PKG_CONFIG_PATH=../zzip; $(PKG_CONFIG) zziplib --cflags`
+ZZIP_LIBS = `export PKG_CONFIG_PATH=../zzip; $(PKG_CONFIG) zziplib --libs`
+SDL_CFLAGS = `export PKG_CONFIG_PATH=.; $(PKG_CONFIG) sdl --cflags`
+SDL_LIBS = `export PKG_CONFIG_PATH=.; $(PKG_CONFIG) sdl --libs`
+CLEANFILES = *.pc *.omf
+pkgconfig_HEADERS = SDL_rwops_zzip.pc
+ERRNULL = 2>/dev/null
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SDL/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign SDL/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-checkPROGRAMS:
+ @list='$(check_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
+
+zzcatsdl$(EXEEXT): $(zzcatsdl_OBJECTS) $(zzcatsdl_DEPENDENCIES) $(EXTRA_zzcatsdl_DEPENDENCIES)
+ @rm -f zzcatsdl$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(zzcatsdl_OBJECTS) $(zzcatsdl_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SDL_rwops_zzcat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SDL_rwops_zzip.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 $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-zzipsdlDATA: $(zzipsdl_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(zzipsdl_DATA)'; test -n "$(zzipsdldir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(zzipsdldir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(zzipsdldir)" || 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)$(zzipsdldir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(zzipsdldir)" || exit $$?; \
+ done
+
+uninstall-zzipsdlDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(zzipsdl_DATA)'; test -n "$(zzipsdldir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(zzipsdldir)'; $(am__uninstall_files_from_dir)
+install-pkgconfigHEADERS: $(pkgconfig_HEADERS)
+ @$(NORMAL_INSTALL)
+ @list='$(pkgconfig_HEADERS)'; 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_HEADER) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+ done
+
+uninstall-pkgconfigHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+check: check-am
+all-am: Makefile $(DATA) $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(zzipsdldir)" "$(DESTDIR)$(pkgconfigdir)"; 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:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+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-checkPROGRAMS clean-generic clean-libtool \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pkgconfigHEADERS install-zzipsdlDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pkgconfigHEADERS uninstall-zzipsdlDATA
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-pkgconfigHEADERS install-ps install-ps-am \
+ install-strip install-zzipsdlDATA 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-pkgconfigHEADERS uninstall-zzipsdlDATA
+
+.PRECIOUS: Makefile
+
+
+default: test-sdl
+*.$(OBJEXT): ../zzip/zziplib.pc
+../zzip/zziplib.pc : ../zzip/Makefile
+ cd ../zzip && $(MAKE) zziplib.pc
+
+test.zip : @top_srcdir@/test/test.zip
+ $(LN_S) $? $@
+testsdl test-sdl : test.zip zzcatsdl$(EXEEXT)
+ ./zzcatsdl$(EXEEXT) test/README > test.out
+ diff -q @top_srcdir@/README test.out && rm test.out
+
+all: @SDL_GENERATE@
+sdl : all
+install-sdl : install-data # and not the binary
+
+SDL_rwops_zzip.pc : Makefile
+ @ echo 'prefix=$(prefix)' >$@
+ @ echo 'zzipsdldir=$(zzipsdldir)' >>$@
+ @ echo " " >>$@
+ @ echo "Name: SDL_rwops_zzip" >>$@
+ @ echo "Version: $(VERSION)" >>$@
+ @ echo "Description: SDL_rwops for ZZipLib" >>$@
+ echo 'Requires: sdl, zziplib' >>$@
+ echo 'Cflags: -I$${zzipsdldir}' >>$@
+
+sdl-pc : sdl-uninstalled.pc
+sdl-uninstalled.pc : Makefile
+ @ echo "prefix=`sdl-config --prefix`" >$@
+ @ echo "Name: sdl" >>$@
+ @ echo "Version: `sdl-config --version`" >>$@
+ @ echo "Description: sdl - Simple DirectMedia Layer" >>$@
+ echo "Libs: `sdl-config --libs`" >> $@
+ echo "Cflags: `sdl-config --cflags`" >>$@
+
+# 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/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzcat.c b/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzcat.c
new file mode 100644
index 00000000000..d8706b1da29
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzcat.c
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2001 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB License
+ *
+ * (this example uses errno which might not be multithreaded everywhere)
+ */
+
+#include <SDL_rwops_zzip.h>
+#include <stdlib.h> /* exit */
+
+/* mostly a copy from zzcat.c */
+
+int main (int argc, char** argv)
+{
+ static const char usage[] =
+ " zzcat <file>... \n"
+ " - prints the file to stdout. the file can be a normal file\n"
+ " or an inflated part of a zip-archive \n"
+ ;
+
+ int argn;
+ if (argc <= 1)
+ {
+ printf (usage);
+ exit (0);
+ }
+
+ for (argn=1; argn < argc; argn++)
+ {
+ SDL_RWops* rwops;
+
+ rwops = SDL_RWFromZZIP (argv[argn], "rb");
+ if (! rwops)
+ {
+ perror (argv[argn]);
+ continue;
+ }else{
+ char buf[17];
+ int n;
+
+ /* read chunks of 16 bytes into buf and print them to stdout */
+ while (0 < (n = SDL_RWread(rwops, buf, 1, 16)))
+ {
+ buf[n] = '\0';
+# ifdef STDOUT_FILENO
+ write (STDOUT_FILENO, buf, n);
+# else
+ fwrite (buf, 1, n, stdout);
+# endif
+ }
+
+ if (n == -1)
+ perror (argv[argn]);
+
+ SDL_RWclose (rwops);
+ }
+ }
+
+ return 0;
+}
+
+
+
diff --git a/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.c b/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.c
new file mode 100644
index 00000000000..b273a811470
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.c
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2001 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB License
+ *
+ * (this example uses errno which might not be multithreaded everywhere)
+ */
+
+#include <SDL_rwops_zzip.h>
+#include <zzip/zzip.h>
+#include <string.h> /* strchr */
+
+/* MSVC can not take a casted variable as an lvalue ! */
+#define SDL_RWOPS_ZZIP_DATA(_context) \
+ ((_context)->hidden.unknown.data1)
+#define SDL_RWOPS_ZZIP_FILE(_context) (ZZIP_FILE*) \
+ ((_context)->hidden.unknown.data1)
+
+static int _zzip_seek(SDL_RWops *context, int offset, int whence)
+{
+ return zzip_seek(SDL_RWOPS_ZZIP_FILE(context), offset, whence);
+}
+
+static int _zzip_read(SDL_RWops *context, void *ptr, int size, int maxnum)
+{
+ return zzip_read(SDL_RWOPS_ZZIP_FILE(context), ptr, size*maxnum) / size;
+}
+
+static int _zzip_write(SDL_RWops *context, const void *ptr, int size, int num)
+{
+ return 0; /* ignored */
+}
+
+static int _zzip_close(SDL_RWops *context)
+{
+ if (! context) return 0; /* may be SDL_RWclose is called by atexit */
+
+ zzip_close (SDL_RWOPS_ZZIP_FILE(context));
+ SDL_FreeRW (context);
+ return 0;
+}
+
+SDL_RWops *SDL_RWFromZZIP(const char* file, const char* mode)
+{
+ register SDL_RWops* rwops;
+ register ZZIP_FILE* zzip_file;
+
+ if (! strchr (mode, 'r'))
+ return SDL_RWFromFile(file, mode);
+
+ zzip_file = zzip_fopen (file, mode);
+ if (! zzip_file) return 0;
+
+ rwops = SDL_AllocRW ();
+ if (! rwops) { errno=ENOMEM; zzip_close (zzip_file); return 0; }
+
+ SDL_RWOPS_ZZIP_DATA(rwops) = zzip_file;
+ rwops->read = _zzip_read;
+ rwops->write = _zzip_write;
+ rwops->seek = _zzip_seek;
+ rwops->close = _zzip_close;
+ return rwops;
+}
diff --git a/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.h b/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.h
new file mode 100644
index 00000000000..1a2d188de83
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2001 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB License
+ *
+ * You should be able to drop it in the place of a SDL_RWFromFile. Then
+ * go to X/share/myapp and do `cd graphics && zip -9r ../graphics.zip .`
+ * and rename the graphics/ subfolder - and still all your files
+ * are found: a filepath like X/shared/graphics/game/greetings.bmp
+ * will open X/shared/graphics.zip and return the zipped file
+ * game/greetings.bmp in the zip-archive (for reading that is).
+ *
+ */
+
+#ifndef _SDL_RWops_ZZIP_h
+#define _SDL_RWops_ZZIP_h
+
+#include <SDL_rwops.h>
+
+#ifndef ZZIP_NO_DECLSPEC
+#define ZZIP_DECLSPEC
+#else /* use DECLSPEC from SDL/begin_code.h */
+#define ZZIP_DECLSPEC DECLSPEC
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern ZZIP_DECLSPEC
+SDL_RWops *SDL_RWFromZZIP(const char* file, const char* mode);
+
+#ifdef __cplusplus
+} /* extern C */
+#endif
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/TODO b/Build/source/libs/zziplib/zziplib-src/TODO
new file mode 100644
index 00000000000..c7da3bcaeed
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/TODO
@@ -0,0 +1,111 @@
+SHORTTERM
+- handle international filenames more gracefully (unicode API?)
+- most is multithreaded ... but zzip_dir_open (Thorsten Schöning)
+- rboerdijk@ does also report errors on overlapping reads, another
+ one pointed to the usage of seek_set that may cause the problems
+- ubuntu packager added man.1 for the zz*-binaries, could be upstream.
+
+
+
+
+WISHLIST
+
+- Check the CRC value at the end of read... and add more error codes.
+
+- Do more test. Currently use only with tested "friendly" archives.
+ This is also related to usages of zziplib in virus detection
+ code which should better have a hardened library code. That does
+ also include inflate interface code to need the most testing.
+
+- the buffer reusage code was not strictly multithreading. It should
+ be fixed by now but it would be better to have an automatic test
+ routine to check reentrancy/multithreaded functionality.
+
+- Sligthly More documentation. With the generation of man pages and
+ multiple pages for the website, it does already look acceptable.
+ It should still get better of course - kinda newbie friendly *g*
+
+- Boris Schäling likes to open a zzip archive in memory.
+
+KNOWN PROBLEMS
+
+The win32 compilers need each a different config.h derivate that
+matches both the headers shipped with the compiler and installed
+with updates of the SDK. There is no autoconfigure on win32 as
+that - unless you install some unix tools along.
+
+The sparc-sun-solaris2.* will utter warnings for "char subscript"
+which is caused by isdigit() from ctype.h - this will NOT FIX as
+it is only in the example source code and we want to keep those
+lean and mean to make them easy to adopt by developers.
+
+The hppa1.1-hp-hpux10.20 did show spurious problems of making
+shared libraries - this may well fix with an update of the
+libtool package, the libtool 1.4 is dated 2001/04/24
+
+There are reports of misaligned access to some zip fields that
+I would guess to be on little-endian non-x86 platforms. The current
+bytewise access of multibyte fields is targeted towards the
+bigendian unix machines. The fix would need to go to fetch.h but
+so far no response came about as that one could test a solution.
+
+There are spurious reports of users on win32 platforms that tell
+of some problems with a specific zip file they have but it was
+not possible so far to recreate an environment abroad to show
+the problem too. One can not say if that is due some general
+instability out of DLL hell, or if there is a bug hiding somewhere.
+Please send all those zip files to the maintainer, perhaps it
+can help to find the real cause (I doubt it is in zziplib, but..)
+
+Since lately the xml docbook tools have hardened the checks on the
+input xml that is used for manpage generation. Interestingly the
+resulting manpages are still okay but one should try to fixaway the
+warnings as may be later the result would lead to garbage output
+due more changes in the tools. Needs to change the xml generator
+used in zzip (a python script).
+
+TESTED PLATFORMS
+sparc-sun-solaris2.6/gcc2.95.3
+sparc-sun-solaris2.8/gcc2.95.3
+hppa1.1-hp-hpux10.20
+i686-mandrake-linux-9.0/gcc3.2
+i686-mandrake-linux-9.1/gcc3.2.2
+i686-debian-linux-2.2/gcc2.95.2
+i386-unknown-freebsd4.7/gcc2.95.4 (formerly with wrapwrap)
+powerpc-apple-darwin5.5 (formerly with wrapwrap)
+alphaev67-unknown-linux-gnu/gcc2.95.4 (that's a 64bit platform)
+i386-ms-win32/msvc6
+i386-ms-win32/msvc7
+i386-ms-win32/mingw+msys
+... and probably a lot of others not known to the maintainer.
+
+Additionally, note that Sourceforge has discontinued their compilefarm
+server laboratory. That makes it unlikely that proper support for
+crossplatform functionality can be provided. Expect a compile problem
+here or there - the code however should be prepared to get around any
+problems easily. Send patches! (especially Linux distributions makers
+are usually not sending their patches to upstream maintainers).
+
+Note: the latest cross platform tests are done indirectly by using
+the build.opensuse.org rpm packaging where one can run "make check"
+just before doing the "make install" of the compiled library.
+
+
+SUSE BUILDSERVER INFO
+
+I: A function overflows or underflows an array access. This could be a real error,
+but occasionaly this condition is also misdetected due to loop unrolling or strange pointer
+handling. So this is warning only, please review.
+W: zziplib arraysubscript ../../zzip/memdisk.c:114
+
+I: File is compiled without RPM_OPT_FLAGS
+W: zziplib no-rpm-opt-flags <cmdline>:../../SDL/SDL_rwops_zzcat.c, ../../SDL/SDL_rwops_zzip.c
+
+I: Program is likely to break with new gcc. Try -fno-strict-aliasing.
+W: zziplib strict-aliasing-punning ../../zzip/file.c:275
+W: zziplib strict-aliasing-punning ../../zzip/fseeko.c:99, 126, 147, 158, 182, 281, 288, 301, 360, 539, 543, 546, 563
+W: zziplib strict-aliasing-punning ../../zzip/memdisk.c:181, 182, 183, 185, 186, 187, 188, 189, 192, 193, 194, 195, 247, 455, 456
+W: zziplib strict-aliasing-punning ../../zzip/mmapped.c:277, 289, 311, 314, 339, 340, 393, 397, 410, 438, 440, 443, 444, 549, 551, 552, 558, 559, 561
+W: zziplib strict-aliasing-punning ../../zzip/zip.c:318, 320, 321, 322, 339, 341, 342, 343, 484, 485, 486, 497, 498, 499, 500, 501
+E: zziplib 64bit-portability-issue ../../zzip/memdisk.c:112
+System halted.
diff --git a/Build/source/libs/zziplib/zziplib-src/azure-pipelines.yml b/Build/source/libs/zziplib/zziplib-src/azure-pipelines.yml
new file mode 100644
index 00000000000..7416c366265
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/azure-pipelines.yml
@@ -0,0 +1,42 @@
+# C/C++ with GCC
+# Build your C/C++ project with GCC using make.
+# Add steps that publish test results, save build artifacts, deploy, and more:
+# https://docs.microsoft.com/azure/devops/pipelines/apps/c-cpp/gcc
+
+trigger:
+- master
+- develop
+
+pool:
+ vmImage: 'ubuntu-latest'
+
+steps:
+- script: |
+ sudo apt-get update --fix-missing
+ displayName: 'install refresh'
+- script: |
+ sudo apt-get install --fix-broken --ignore-missing libsdl2-dev
+ displayName: 'install libsdl2-dev'
+- script: |
+ sudo apt-get install --fix-broken --ignore-missing python3-pip
+ displayName: 'install python3-pip'
+- script: |
+ pip3 install unittest-xml-reporting
+ displayName: 'install unittest-xml-reporting'
+- script: |
+ rm -rf build
+ mkdir build
+ displayName: 'build dir'
+- script: |
+ cd build && cmake -DTESTFLAGS=--xmlresults=TEST-zziplibs.xml ..
+ displayName: 'configure'
+- script: |
+ cd build && make all VERBOSE=1
+ displayName: 'make all'
+- script: |
+ cd build && make check VERBOSE=1 || true
+ displayName: 'make check VERBOSE=1'
+- script: |
+ find . -name '*.xml'
+ displayName: 'find xml'
+- task: PublishTestResults@2
diff --git a/Build/source/libs/zziplib/zziplib-src/azure-test-results.md b/Build/source/libs/zziplib/zziplib-src/azure-test-results.md
new file mode 100644
index 00000000000..2813b5a2d45
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/azure-test-results.md
@@ -0,0 +1,7 @@
+# master branch tests for zziplib on Azure Pipelines
+
+[(master)](https://github.com/gdraheim/zziplib/tree/master): [![Build Status](https://dev.azure.com/gdraheim/gdraheim/_apis/build/status/gdraheim.zziplib%20(1)?branchName=master)](https://dev.azure.com/gdraheim/gdraheim/_build/latest?definitionId=4&branchName=master)
+
+[develop](https://github.com/gdraheim/zziplib/tree/develop): [![Build Status](https://dev.azure.com/gdraheim/gdraheim/_apis/build/status/gdraheim.zziplib%20(1)?branchName=develop)](https://dev.azure.com/gdraheim/gdraheim/_build/latest?definitionId=4&branchName=develop)
+
+
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/CMakeLists.txt b/Build/source/libs/zziplib/zziplib-src/bins/CMakeLists.txt
new file mode 100644
index 00000000000..d9466e30db9
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/CMakeLists.txt
@@ -0,0 +1,71 @@
+cmake_minimum_required (VERSION 3.1)
+project(zzipbins VERSION "0.13.71" LANGUAGES C)
+
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE Release)
+endif(NOT CMAKE_BUILD_TYPE)
+
+include ( GNUInstallDirs )
+include ( FindPkgConfig )
+
+# options ########################################################
+option(BUILD_SHARED_LIBS "Build a shared library" ON)
+option(BUILD_STATIC_LIBS "Build the static library" OFF)
+option(BUILD_TESTS "Build test programs" OFF)
+option(MSVC_STATIC_RUNTIME "Build with static runtime libs (/MT)" ON)
+
+# Zlib library needed
+find_package ( ZLIB REQUIRED )
+# pkg_search_module ( ZZIP zzip )
+# pkg_search_module ( ZZIPMAPPED zzipmmapped )
+# pkg_search_module ( ZZIPFSEEKO zzipfseeko )
+
+# targets ########################################################
+add_executable(zzcat zzcat.c)
+add_executable(zzdir zzdir.c)
+add_executable(zzxorcat zzxorcat.c)
+add_executable(zzxordir zzxordir.c)
+add_executable(zzxorcopy zzxorcopy.c)
+add_executable(zzobfuscated zzobfuscated.c)
+add_executable(zziptest zziptest.c)
+add_executable(zzip zzip.c zzipmake-zip.c)
+add_executable(unzzip unzzip.c unzzipcat-zip.c unzzipdir-zip.c)
+add_executable(unzzip-mix unzzip.c unzzipcat-mix.c unzzipdir-mix.c)
+add_executable(unzzip-big unzzip.c unzzipcat-big.c unzzipdir-big.c)
+add_executable(unzzip-mem unzzip.c unzzipcat-mem.c unzzipdir-mem.c)
+add_executable(unzip-mem unzip-mem.c)
+
+target_link_libraries(zzcat libzzip ZLIB::ZLIB)
+target_link_libraries(zzdir libzzip ZLIB::ZLIB)
+target_link_libraries(zzxorcat libzzip ZLIB::ZLIB)
+target_link_libraries(zzxordir libzzip ZLIB::ZLIB)
+target_link_libraries(zzxorcopy libzzip ZLIB::ZLIB)
+target_link_libraries(zzobfuscated libzzip ZLIB::ZLIB)
+target_link_libraries(zziptest libzzip ZLIB::ZLIB)
+target_link_libraries(zzip libzzip ZLIB::ZLIB)
+target_link_libraries(unzzip libzzip ZLIB::ZLIB)
+target_link_libraries(unzzip-mix libzzip ZLIB::ZLIB)
+target_link_libraries(unzzip-big libzzipfseeko ZLIB::ZLIB)
+target_link_libraries(unzzip-mem libzzipmmapped ZLIB::ZLIB)
+target_link_libraries(unzip-mem libzzipmmapped ZLIB::ZLIB)
+
+target_include_directories(zzcat PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(zzdir PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(zzxorcat PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(zzxordir PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(zzxorcopy PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(zzobfuscated PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(zziptest PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(zzip PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(unzzip PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(unzzip-mix PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(unzzip-big PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(unzzip-mem PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(unzip-mem PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+
+# install ########################################################
+install(TARGETS zzcat zzdir zzxorcat zzxordir zzxorcopy
+ unzzip unzzip-mix unzzip-big unzzip-mem unzip-mem
+ DESTINATION "${CMAKE_INSTALL_BINDIR}")
+install(FILES zziplib.m4
+ DESTINATION "${CMAKE_INSTALL_DATADIR}/aclocal")
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/Makefile.am b/Build/source/libs/zziplib/zziplib-src/bins/Makefile.am
new file mode 100644
index 00000000000..ed1df98d428
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/Makefile.am
@@ -0,0 +1,46 @@
+AUTOMAKE_OPTIONS = 1.4 foreign
+AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2
+DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir)
+DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4
+CFLAGS = @CFLAGS@ @ASAN_CFLAGS@
+
+bin_PROGRAMS = zzcat zzdir zzxorcat zzxordir zzxorcopy \
+ unzzip unzzip-mix unzzip-mem unzzip-big unzip-mem
+noinst_PROGRAMS = zziptest zzobfuscated zzip
+aclocaldir = $(datadir)/aclocal
+aclocal_DATA = zziplib.m4
+#
+VERSION_INFO=@VERSION_INFO@
+RELEASE_INFO=@RELEASE_INFO@
+THREAD_SAFE=@THREAD_SAFE@
+#
+
+WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt
+
+noinst_HEADERS = unzzipdir-zip.h unzzipcat-zip.h unzzip-states.h zzipmake-zip.h
+EXTRA_DIST = $(aclocal_DATA) $(noinst_HEADERS)
+CLEANFILES = $(WCC10_CLEAN)
+
+zziptest_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzcat_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzdir_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzxorcat_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzxordir_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzobfuscated_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+
+zzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzip_SOURCES = zzip.c zzipmake-zip.c
+
+unzzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+unzzip_SOURCES = unzzip.c unzzipcat-zip.c unzzipdir-zip.c
+unzzip_mix_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+unzzip_mix_SOURCES = unzzip.c unzzipcat-mix.c unzzipdir-mix.c
+unzzip_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz @ASAN_LIBS@
+unzzip_mem_SOURCES = unzzip.c unzzipcat-mem.c unzzipdir-mem.c
+unzzip_big_LDADD = ../zzip/libzzipfseeko.la @RESOLVES@ -lz @ASAN_LIBS@
+unzzip_big_SOURCES = unzzip.c unzzipcat-big.c unzzipdir-big.c
+
+unzip_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz @ASAN_LIBS@
+
+../zzip/libzzip.la : @top_srcdir@/zzip/*.c
+ (cd ../zzip && $(MAKE) `basename $@`)
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/Makefile.in b/Build/source/libs/zziplib/zziplib-src/bins/Makefile.in
new file mode 100644
index 00000000000..7c3b9f776da
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/Makefile.in
@@ -0,0 +1,899 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+bin_PROGRAMS = zzcat$(EXEEXT) zzdir$(EXEEXT) zzxorcat$(EXEEXT) \
+ zzxordir$(EXEEXT) zzxorcopy$(EXEEXT) unzzip$(EXEEXT) \
+ unzzip-mix$(EXEEXT) unzzip-mem$(EXEEXT) unzzip-big$(EXEEXT) \
+ unzip-mem$(EXEEXT)
+noinst_PROGRAMS = zziptest$(EXEEXT) zzobfuscated$(EXEEXT) \
+ zzip$(EXEEXT)
+subdir = bins
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
+ $(top_srcdir)/m4/ac_set_default_paths_system.m4 \
+ $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \
+ $(top_srcdir)/m4/acx_restrict.m4 \
+ $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \
+ $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \
+ $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \
+ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
+ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
+ $(top_srcdir)/m4/ax_check_enable_debug.m4 \
+ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
+ $(top_srcdir)/m4/ax_expand_prefix.m4 \
+ $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
+ $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
+ $(top_srcdir)/m4/ax_pax_tar.m4 \
+ $(top_srcdir)/m4/ax_prefix_config_h.m4 \
+ $(top_srcdir)/m4/ax_set_version_info.m4 \
+ $(top_srcdir)/m4/ax_spec_file.m4 \
+ $(top_srcdir)/m4/ax_spec_package_version.m4 \
+ $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \
+ $(top_srcdir)/m4/ax_warning_default_pkgconfig.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/patch_libtool_on_darwin_zsh_overquoting.m4 \
+ $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \
+ $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+ $(am__DIST_COMMON)
+mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(aclocaldir)"
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+unzip_mem_SOURCES = unzip-mem.c
+unzip_mem_OBJECTS = unzip-mem.$(OBJEXT)
+unzip_mem_DEPENDENCIES = ../zzip/libzzipmmapped.la
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+am_unzzip_OBJECTS = unzzip.$(OBJEXT) unzzipcat-zip.$(OBJEXT) \
+ unzzipdir-zip.$(OBJEXT)
+unzzip_OBJECTS = $(am_unzzip_OBJECTS)
+unzzip_DEPENDENCIES = ../zzip/libzzip.la
+am_unzzip_big_OBJECTS = unzzip.$(OBJEXT) unzzipcat-big.$(OBJEXT) \
+ unzzipdir-big.$(OBJEXT)
+unzzip_big_OBJECTS = $(am_unzzip_big_OBJECTS)
+unzzip_big_DEPENDENCIES = ../zzip/libzzipfseeko.la
+am_unzzip_mem_OBJECTS = unzzip.$(OBJEXT) unzzipcat-mem.$(OBJEXT) \
+ unzzipdir-mem.$(OBJEXT)
+unzzip_mem_OBJECTS = $(am_unzzip_mem_OBJECTS)
+unzzip_mem_DEPENDENCIES = ../zzip/libzzipmmapped.la
+am_unzzip_mix_OBJECTS = unzzip.$(OBJEXT) unzzipcat-mix.$(OBJEXT) \
+ unzzipdir-mix.$(OBJEXT)
+unzzip_mix_OBJECTS = $(am_unzzip_mix_OBJECTS)
+unzzip_mix_DEPENDENCIES = ../zzip/libzzip.la
+zzcat_SOURCES = zzcat.c
+zzcat_OBJECTS = zzcat.$(OBJEXT)
+zzcat_DEPENDENCIES = ../zzip/libzzip.la
+zzdir_SOURCES = zzdir.c
+zzdir_OBJECTS = zzdir.$(OBJEXT)
+zzdir_DEPENDENCIES = ../zzip/libzzip.la
+am_zzip_OBJECTS = zzip.$(OBJEXT) zzipmake-zip.$(OBJEXT)
+zzip_OBJECTS = $(am_zzip_OBJECTS)
+zzip_DEPENDENCIES = ../zzip/libzzip.la
+zziptest_SOURCES = zziptest.c
+zziptest_OBJECTS = zziptest.$(OBJEXT)
+zziptest_DEPENDENCIES = ../zzip/libzzip.la
+zzobfuscated_SOURCES = zzobfuscated.c
+zzobfuscated_OBJECTS = zzobfuscated.$(OBJEXT)
+zzobfuscated_DEPENDENCIES = ../zzip/libzzip.la
+zzxorcat_SOURCES = zzxorcat.c
+zzxorcat_OBJECTS = zzxorcat.$(OBJEXT)
+zzxorcat_DEPENDENCIES = ../zzip/libzzip.la
+zzxorcopy_SOURCES = zzxorcopy.c
+zzxorcopy_OBJECTS = zzxorcopy.$(OBJEXT)
+zzxorcopy_LDADD = $(LDADD)
+zzxordir_SOURCES = zzxordir.c
+zzxordir_OBJECTS = zzxordir.$(OBJEXT)
+zzxordir_DEPENDENCIES = ../zzip/libzzip.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 =
+depcomp = $(SHELL) $(top_srcdir)/uses/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = unzip-mem.c $(unzzip_SOURCES) $(unzzip_big_SOURCES) \
+ $(unzzip_mem_SOURCES) $(unzzip_mix_SOURCES) zzcat.c zzdir.c \
+ $(zzip_SOURCES) zziptest.c zzobfuscated.c zzxorcat.c \
+ zzxorcopy.c zzxordir.c
+DIST_SOURCES = unzip-mem.c $(unzzip_SOURCES) $(unzzip_big_SOURCES) \
+ $(unzzip_mem_SOURCES) $(unzzip_mix_SOURCES) zzcat.c zzdir.c \
+ $(zzip_SOURCES) zziptest.c zzobfuscated.c zzxorcat.c \
+ zzxorcopy.c zzxordir.c
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+DATA = $(aclocal_DATA)
+HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/uses/depcomp \
+ $(top_srcdir)/uses/mkinstalldirs
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+ASAN_CFLAGS = @ASAN_CFLAGS@
+ASAN_LIBS = @ASAN_LIBS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@ @ASAN_CFLAGS@
+CONFIG_FILES = @CONFIG_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4
+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@
+GNUTAR = @GNUTAR@
+GREP = @GREP@
+GTAR = @GTAR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKZIP = @MKZIP@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PAX = @PAX@
+PAX_TAR_CREATE = @PAX_TAR_CREATE@
+PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+RANLIB = @RANLIB@
+RELEASE_INFO = @RELEASE_INFO@
+RESOLVES = @RESOLVES@
+SDL = @SDL@
+SDL_GENERATE = @SDL_GENERATE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+THREAD_SAFE = @THREAD_SAFE@
+VERSION = @VERSION@
+#
+VERSION_INFO = @VERSION_INFO@
+XMLTO = @XMLTO@
+ZIPTESTS = @ZIPTESTS@
+ZLIB_INCL = @ZLIB_INCL@
+ZLIB_LDIR = @ZLIB_LDIR@
+ZLIB_VERSION = @ZLIB_VERSION@
+ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+aclocaldir = $(datadir)/aclocal
+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@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgconfig_libdir = @pkgconfig_libdir@
+pkgconfig_libfile = @pkgconfig_libfile@
+pkgconfigdir = @pkgconfigdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = 1.4 foreign
+AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2
+DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir)
+aclocal_DATA = zziplib.m4
+#
+WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt
+noinst_HEADERS = unzzipdir-zip.h unzzipcat-zip.h unzzip-states.h zzipmake-zip.h
+EXTRA_DIST = $(aclocal_DATA) $(noinst_HEADERS)
+CLEANFILES = $(WCC10_CLEAN)
+zziptest_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzcat_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzdir_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzxorcat_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzxordir_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzobfuscated_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+zzip_SOURCES = zzip.c zzipmake-zip.c
+unzzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+unzzip_SOURCES = unzzip.c unzzipcat-zip.c unzzipdir-zip.c
+unzzip_mix_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz @ASAN_LIBS@
+unzzip_mix_SOURCES = unzzip.c unzzipcat-mix.c unzzipdir-mix.c
+unzzip_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz @ASAN_LIBS@
+unzzip_mem_SOURCES = unzzip.c unzzipcat-mem.c unzzipdir-mem.c
+unzzip_big_LDADD = ../zzip/libzzipfseeko.la @RESOLVES@ -lz @ASAN_LIBS@
+unzzip_big_SOURCES = unzzip.c unzzipcat-big.c unzzipdir-big.c
+unzip_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz @ASAN_LIBS@
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bins/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign bins/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+unzip-mem$(EXEEXT): $(unzip_mem_OBJECTS) $(unzip_mem_DEPENDENCIES) $(EXTRA_unzip_mem_DEPENDENCIES)
+ @rm -f unzip-mem$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(unzip_mem_OBJECTS) $(unzip_mem_LDADD) $(LIBS)
+
+unzzip$(EXEEXT): $(unzzip_OBJECTS) $(unzzip_DEPENDENCIES) $(EXTRA_unzzip_DEPENDENCIES)
+ @rm -f unzzip$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(unzzip_OBJECTS) $(unzzip_LDADD) $(LIBS)
+
+unzzip-big$(EXEEXT): $(unzzip_big_OBJECTS) $(unzzip_big_DEPENDENCIES) $(EXTRA_unzzip_big_DEPENDENCIES)
+ @rm -f unzzip-big$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(unzzip_big_OBJECTS) $(unzzip_big_LDADD) $(LIBS)
+
+unzzip-mem$(EXEEXT): $(unzzip_mem_OBJECTS) $(unzzip_mem_DEPENDENCIES) $(EXTRA_unzzip_mem_DEPENDENCIES)
+ @rm -f unzzip-mem$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(unzzip_mem_OBJECTS) $(unzzip_mem_LDADD) $(LIBS)
+
+unzzip-mix$(EXEEXT): $(unzzip_mix_OBJECTS) $(unzzip_mix_DEPENDENCIES) $(EXTRA_unzzip_mix_DEPENDENCIES)
+ @rm -f unzzip-mix$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(unzzip_mix_OBJECTS) $(unzzip_mix_LDADD) $(LIBS)
+
+zzcat$(EXEEXT): $(zzcat_OBJECTS) $(zzcat_DEPENDENCIES) $(EXTRA_zzcat_DEPENDENCIES)
+ @rm -f zzcat$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(zzcat_OBJECTS) $(zzcat_LDADD) $(LIBS)
+
+zzdir$(EXEEXT): $(zzdir_OBJECTS) $(zzdir_DEPENDENCIES) $(EXTRA_zzdir_DEPENDENCIES)
+ @rm -f zzdir$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(zzdir_OBJECTS) $(zzdir_LDADD) $(LIBS)
+
+zzip$(EXEEXT): $(zzip_OBJECTS) $(zzip_DEPENDENCIES) $(EXTRA_zzip_DEPENDENCIES)
+ @rm -f zzip$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(zzip_OBJECTS) $(zzip_LDADD) $(LIBS)
+
+zziptest$(EXEEXT): $(zziptest_OBJECTS) $(zziptest_DEPENDENCIES) $(EXTRA_zziptest_DEPENDENCIES)
+ @rm -f zziptest$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(zziptest_OBJECTS) $(zziptest_LDADD) $(LIBS)
+
+zzobfuscated$(EXEEXT): $(zzobfuscated_OBJECTS) $(zzobfuscated_DEPENDENCIES) $(EXTRA_zzobfuscated_DEPENDENCIES)
+ @rm -f zzobfuscated$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(zzobfuscated_OBJECTS) $(zzobfuscated_LDADD) $(LIBS)
+
+zzxorcat$(EXEEXT): $(zzxorcat_OBJECTS) $(zzxorcat_DEPENDENCIES) $(EXTRA_zzxorcat_DEPENDENCIES)
+ @rm -f zzxorcat$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(zzxorcat_OBJECTS) $(zzxorcat_LDADD) $(LIBS)
+
+zzxorcopy$(EXEEXT): $(zzxorcopy_OBJECTS) $(zzxorcopy_DEPENDENCIES) $(EXTRA_zzxorcopy_DEPENDENCIES)
+ @rm -f zzxorcopy$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(zzxorcopy_OBJECTS) $(zzxorcopy_LDADD) $(LIBS)
+
+zzxordir$(EXEEXT): $(zzxordir_OBJECTS) $(zzxordir_DEPENDENCIES) $(EXTRA_zzxordir_DEPENDENCIES)
+ @rm -f zzxordir$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(zzxordir_OBJECTS) $(zzxordir_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzip-mem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipcat-big.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipcat-mem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipcat-mix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipcat-zip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipdir-big.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipdir-mem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipdir-mix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzzipdir-zip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzcat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzipmake-zip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zziptest.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzobfuscated.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzxorcat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzxorcopy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzxordir.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 $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-aclocalDATA: $(aclocal_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(aclocaldir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(aclocaldir)" || 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)$(aclocaldir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(aclocaldir)" || exit $$?; \
+ done
+
+uninstall-aclocalDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(aclocaldir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(aclocaldir)"; 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:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool \
+ clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-aclocalDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-aclocalDATA uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool \
+ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-aclocalDATA install-am install-binPROGRAMS \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-aclocalDATA uninstall-am \
+ uninstall-binPROGRAMS
+
+.PRECIOUS: Makefile
+
+
+../zzip/libzzip.la : @top_srcdir@/zzip/*.c
+ (cd ../zzip && $(MAKE) `basename $@`)
+
+# 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/Build/source/libs/zziplib/zziplib-src/bins/unzip-mem.c b/Build/source/libs/zziplib/zziplib-src/bins/unzip-mem.c
new file mode 100644
index 00000000000..cc009f89932
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzip-mem.c
@@ -0,0 +1,414 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzipmmap api usage.
+ */
+
+#include <zlib.h> /* crc32 */
+
+#include <zzip/memdisk.h>
+#include <zzip/__fnmatch.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+#include <time.h>
+
+#define ___ {
+#define ____ }
+
+#define EXIT_SUCCESS 0
+#define EXIT_WARNINGS 1
+#define EXIT_ERRORS 2
+#define EXIT_EFORMAT 3
+#define EXIT_ENOMEM 4
+#define EXIT_ENOTTY 5
+#define EXIT_EINFLATE 6
+#define EXIT_ENOARCH 9
+#define EXIT_EOPTION 10
+#define EXIT_ENOFILE 11
+#define EXIT_EDISKFULL 50
+#define EXIT_EPREMATURE 51
+#define EXIT_USERABORT 80
+#define EXIT_BADCOMPRESSION 81
+#define EXIT_BADPASSWORD 82
+
+static int status = EXIT_SUCCESS;
+static int option_list = 0; /* "-l" */
+static int option_pipe = 0; /* "-p" */
+static int option_verbose = 0; /* "-v" */
+static int option_testcrc = 0; /* "-t" */
+static int option_binary = 0; /* "-b" */
+static int option_nocase = 0; /* "-C" */
+static int option_junkpaths = 0; /* "-j" */
+static int option_dosfiles = 0; /* "-L" */
+static int option_keepold = 0; /* "-n" */
+static int option_overwrite = 0; /* "-o" */
+static int option_quiet = 0; /* "-q" */
+static int option_permbits = 0; /* "-X" */
+
+static const char usage[] =
+{
+ "unzzip-mem <zip> [names].. \n"
+ " - unzzip a zip archive.\n"
+ "options:\n"
+ " -l list archive files (name, usize, mtime, comments)\n" /* +totals */
+ " -p extract archive files to pipe, i.e. stdout (binary mode)\n"
+ " -t test archive files (check the crc values)\n"
+ " -v verbose list of archive files\n"
+ " -b accept and ignore (force binary extract)\n"
+ " -C match filenames case-insensitively\n"
+ " -j junk paths (do not recreate directory structure)\n"
+ " -L convert dos filenames to lowercase upon extract\n"
+ " -n never overwrite existing files\n"
+ " -o always overwrite existing files\n"
+ " -q quite operation\n"
+ " -X restore user/owner attributes of files\n"
+};
+
+static void zzip_mem_entry_pipe(ZZIP_MEM_DISK* disk,
+ ZZIP_MEM_ENTRY* entry, FILE* out)
+{
+ ZZIP_DISK_FILE* file = zzip_mem_entry_fopen (disk, entry);
+ if (file)
+ {
+ char buffer[1024]; int len;
+ while ((len = zzip_mem_disk_fread (buffer, 1024, 1, file)))
+ fwrite (buffer, len, 1, out);
+
+ zzip_mem_disk_fclose (file);
+ }
+}
+
+static void zzip_mem_entry_make(ZZIP_MEM_DISK* disk,
+ ZZIP_MEM_ENTRY* entry)
+{
+ FILE* file = fopen (entry->zz_name, "wb");
+ if (file) { zzip_mem_entry_pipe (disk, entry, file); fclose (file); }
+ perror (entry->zz_name);
+ if (status < EXIT_WARNINGS) status = EXIT_WARNINGS;
+}
+
+/* ------------------------- test ------------------------------------ */
+
+static char* archive = 0;
+static int test_errors = 0;
+
+static void zzip_mem_entry_test(ZZIP_MEM_DISK* disk,
+ ZZIP_MEM_ENTRY* entry)
+{
+ ZZIP_DISK_FILE* file = zzip_mem_entry_fopen (disk, entry);
+ printf (" testing: %s ", entry->zz_name);
+ if (strlen (entry->zz_name) < 24) {
+ printf ("%.*s", 24 - (int) strlen (entry->zz_name),
+ " ");
+ }
+ if (file)
+ {
+ unsigned long crc = crc32 (0L, NULL, 0);
+ unsigned char buffer[1024]; int len;
+ while ((len = zzip_mem_disk_fread (buffer, 1024, 1, file))) {
+ crc = crc32 (crc, buffer, len);
+ }
+
+ zzip_mem_disk_fclose (file);
+ if (crc == (unsigned long) entry->zz_crc32) {
+ printf ("OK\n");
+ } else {
+ printf ("BAD %lx (should be %lx)\n", crc, entry->zz_crc32);
+ test_errors ++;
+ }
+ } else {
+ printf ("ERROR (no such file)\n");
+ test_errors ++;
+ }
+}
+
+static void zzip_mem_entry_test_start(void)
+{
+ test_errors = 0;
+ printf ("Archive: %s\n", archive);
+}
+
+static void zzip_mem_entry_test_done(void)
+{
+ if (test_errors == 0) {
+ printf ("No errors detected in compressed data of %s\n", archive);
+ } else {
+ printf ("%i errors detected in compressed data of %s\n",
+ test_errors, archive);
+ }
+}
+
+/* ------------------------- list ------------------------------------ */
+
+static char _zzip_time_[30];
+static char* _zzip_ctime (const time_t* timeval)
+{
+ struct tm* date = localtime (timeval);
+ sprintf (_zzip_time_, "%02i-%02i-%02i %02i:%02i",
+ date->tm_mon, date->tm_mday, date->tm_year%100,
+ date->tm_hour, date->tm_min);
+ return _zzip_time_;
+}
+
+static const char* comprlevel[] = {
+ "stored", "shrunk", "redu:1", "redu:2", "redu:3", "redu:4",
+ "impl:N", "toknze", "defl:N", "defl:B", "impl:B" };
+
+zzip_off_t sum_usize = 0;
+zzip_off_t sum_csize = 0;
+zzip_off_t sum_files = 0;
+#define L (long)
+
+static void zzip_mem_entry_direntry_start (void)
+{
+ sum_usize = 0;
+ sum_csize = 0;
+ sum_files = 0;
+ if (option_verbose) goto verbose;
+ printf(" Length Date & Time Name\n");
+ printf(" -------- ---- ---- ----\n");
+ return;
+ verbose:
+ printf(" Length Method Size Ratio Date Time CRC-32 Name\n");
+ printf("-------- ------ ------- ----- ---- ---- ------ ----\n");
+}
+
+static void zzip_mem_entry_direntry_done (void)
+{
+ char exp = ' ';
+ if (sum_usize / 1024 > 1024*1024*1024) { exp = 'G';
+ sum_usize /= 1024*1024*1024; sum_usize /= 1024*1024*1024; }
+ if (sum_usize > 1024*1024*1024) { exp = 'M';
+ sum_usize /= 1024*1024; sum_csize /= 1024*1024; }
+ if (sum_usize > 1024*1024) { exp = 'K';
+ sum_usize /= 1024; sum_csize /= 1024; }
+ if (option_verbose) goto verbose;
+ printf(" -------- ----\n");
+ printf(" %8li%c %8li %s\n", L sum_usize, exp, L sum_files,
+ sum_files == 1 ? "file" : "files");
+ return;
+ verbose:
+ printf("-------- ------ ------- ----- ----\n");
+ printf("%8li%c %8li%c %3li%% %8li %s\n",
+ L sum_usize, exp, L sum_csize, exp,
+ L (100 - (sum_csize*100/sum_usize)), L sum_files,
+ sum_files == 1 ? "file" : "files");
+}
+
+static void zzip_mem_entry_direntry(ZZIP_MEM_ENTRY* entry)
+{
+ char* name = zzip_mem_entry_to_name (entry);
+ zzip_off_t usize = zzip_mem_entry_usize (entry);
+ zzip_off_t csize = zzip_mem_entry_csize (entry);
+ int compr = zzip_mem_entry_data_comprlevel (entry);
+ time_t mtime = entry->zz_mktime;
+ long crc32 = entry->zz_crc32;
+ const char* comment = zzip_mem_entry_to_comment (entry);
+ char exp = ' ';
+
+ sum_usize += usize;
+ sum_csize += csize;
+ sum_files += 1;
+
+ if (usize / 1024 > 1024*1024*1024) { exp = 'G';
+ usize /= 1024*1024*1024; usize /= 1024*1024*1024; }
+ if (usize > 1024*1024*1024) { exp = 'M';
+ usize /= 1024*1024; csize /= 1024*1024; }
+ if (usize > 1024*1024) { exp = 'K';
+ usize /= 1024; csize /= 1024; }
+
+ if (! comment) comment = "";
+ if (*name == '\n') name++;
+
+ if (option_verbose) {
+ long percentage;
+
+ percentage = usize ? (L (100 - (csize*100/usize))) : 0; /* 0% if file size is 0 */
+ printf("%8li%c %s %8li%c%3li%% %s %8lx %s %s\n",
+ L usize, exp, comprlevel[compr], L csize, exp,
+ percentage,
+ _zzip_ctime(&mtime), crc32, name, comment);
+ } else {
+ printf(" %8li%c %s %s %s\n",
+ L usize, exp, _zzip_ctime(&mtime), name, comment);
+ }
+}
+
+static void zzip_mem_entry_listfiles(ZZIP_MEM_DISK* disk, char* filespec)
+{
+ zzip_mem_entry_direntry_start ();
+ ___ ZZIP_MEM_ENTRY* entry = 0;
+ while ((entry = zzip_mem_disk_findmatch(disk, filespec, entry, 0, 0)))
+ zzip_mem_entry_direntry (entry); ____;
+ zzip_mem_entry_direntry_done ();
+}
+
+static void zzip_mem_entry_listall(ZZIP_MEM_DISK* disk)
+{
+ zzip_mem_entry_direntry_start ();
+ ___ ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk);
+ for (; entry ; entry = zzip_mem_disk_findnext(disk, entry))
+ zzip_mem_entry_direntry (entry); ____;
+ zzip_mem_entry_direntry_done ();
+}
+
+static void zzip_mem_entry_testfiles(ZZIP_MEM_DISK* disk, char* filespec)
+{
+ zzip_mem_entry_test_start ();
+ ___ ZZIP_MEM_ENTRY* entry = 0;
+ while ((entry = zzip_mem_disk_findmatch(disk, filespec, entry, 0, 0)))
+ zzip_mem_entry_test (disk, entry); ____;
+ zzip_mem_entry_test_done ();
+}
+
+static void zzip_mem_entry_testall(ZZIP_MEM_DISK* disk)
+{
+ zzip_mem_entry_test_start ();
+ ___ ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk);
+ for (; entry ; entry = zzip_mem_disk_findnext(disk, entry))
+ zzip_mem_entry_test (disk, entry); ____;
+ zzip_mem_entry_test_done ();
+}
+
+static void zzip_mem_entry_pipefiles(ZZIP_MEM_DISK* disk, char* filespec)
+{
+ ZZIP_MEM_ENTRY* entry = 0;
+ while ((entry = zzip_mem_disk_findmatch(disk, filespec, entry, 0, 0)))
+ zzip_mem_entry_pipe (disk, entry, stdout);
+}
+
+static void zzip_mem_entry_pipeall(ZZIP_MEM_DISK* disk)
+{
+ ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk);
+ for (; entry ; entry = zzip_mem_disk_findnext(disk, entry))
+ zzip_mem_entry_pipe (disk, entry, stdout);
+}
+
+static void zzip_mem_entry_makefiles(ZZIP_MEM_DISK* disk, char* filespec)
+{
+ ZZIP_MEM_ENTRY* entry = 0;
+ while ((entry = zzip_mem_disk_findmatch(disk, filespec, entry, 0, 0)))
+ zzip_mem_entry_make (disk, entry);
+}
+
+static void zzip_mem_entry_makeall(ZZIP_MEM_DISK* disk)
+{
+ ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk);
+ for (; entry ; entry = zzip_mem_disk_findnext(disk, entry))
+ zzip_mem_entry_make (disk, entry);
+}
+
+int
+main (int argc, char ** argv)
+{
+ int argn; int archname = 0; int filespec = 0;
+ ZZIP_MEM_DISK* disk;
+ if (argc <= 1 || ! strcmp (argv[1], "--help"))
+ {
+ printf (usage);
+ return 0;
+ }
+ if (! strcmp (argv[1], "--version"))
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return 0;
+ }
+
+ for (argn=1; argn < argc; argn++) {
+ if ((argv[argn])[0] == '-') {
+ int x = 1;
+ while ((argv[argn])[x]) {
+ switch (argv[argn][x]) {
+ case 'l': option_list++; break;
+ case 'p': option_pipe++; break;
+ case 't': option_testcrc++; break;
+ case 'v': option_verbose++; break;
+ case 'b': option_binary++; break;
+ case 'C': option_nocase++; break;
+ case 'j': option_junkpaths++; break;
+ case 'L': option_dosfiles++; break;
+ case 'n': option_keepold++; break;
+ case 'o': option_overwrite++; break;
+ case 'q': option_quiet++; break;
+ case 'X': option_permbits++; break;
+ }
+ x++;
+ }
+ (argv[argn])[0] = 0;
+ } else {
+ if (! archname) { archname = argn; continue; }
+ if (! filespec) { filespec = argn; continue; }
+ }
+ }
+
+ if (! archname) {
+ printf (usage);
+ return 0;
+ } else archive = argv[archname];
+
+ disk = zzip_mem_disk_open (argv[archname]);
+ if (! disk) {
+ perror(argv[archname]);
+ return -1;
+ }
+
+ if (option_list || option_verbose) {
+ if (! filespec) {
+ zzip_mem_entry_listall (disk);
+ } else {
+ for (argn=filespec; argn < argc; argn++) {
+ if (argv[argn][0]) {
+ zzip_mem_entry_listfiles (disk, argv[argn]);
+ }
+ }
+ }
+ } else if (option_pipe) {
+ if (! filespec) {
+ zzip_mem_entry_pipeall (disk);
+ } else {
+ for (argn=filespec; argn < argc; argn++) {
+ if (argv[argn][0]) {
+ zzip_mem_entry_pipefiles (disk, argv[argn]);
+ }
+ }
+ }
+ } else if (option_testcrc) {
+ if (! filespec) {
+ zzip_mem_entry_testall (disk);
+ } else {
+ for (argn=filespec; argn < argc; argn++) {
+ if (argv[argn][0]) {
+ zzip_mem_entry_testfiles (disk, argv[argn]);
+ }
+ }
+ }
+ } else {
+ if (! filespec) {
+ zzip_mem_entry_makeall (disk);
+ } else {
+ for (argn=filespec; argn < argc; argn++) {
+ if (argv[argn][0]) {
+ zzip_mem_entry_makefiles (disk, argv[argn]);
+ }
+ }
+ }
+ }
+
+ return status;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzip-states.h b/Build/source/libs/zziplib/zziplib-src/bins/unzzip-states.h
new file mode 100644
index 00000000000..55ea8c09387
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzip-states.h
@@ -0,0 +1,24 @@
+#ifndef UNZZIP_STATES_H
+#define UNZZIP_STATES_H
+
+/* DIAGNOSTICS according to the unzip(1) manpage */
+
+#define EXIT_OK 0
+#define EXIT_WARNINGS 1
+#define EXIT_ERRORS 2
+#define EXIT_FILEFORMAT 3
+#define EXIT_ENOMEM 4
+#define EXIT_ENOTTY_FOR_PASSWORD 5
+#define EXIT_ENOMEM_ZIP_TO_DISK 6
+#define EXIT_ENOMEM_ZIP_TO_MEM 7
+#define EXIT_ZIP_NOT_FOUND 9
+#define EXIT_INVALID_OPTION 10
+#define EXIT_FILE_NOT_FOUND 11
+#define EXIT_DISKFULL 50
+#define EXIT_EARLY_END_OF_FILE 51
+#define EXIT_SIGTERM 80
+#define EXIT_UNSUPPORTED_COMPRESSION 81
+#define EXIT_WRONG_PASSWORD 82
+
+#endif
+
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzip.c b/Build/source/libs/zziplib/zziplib-src/bins/unzzip.c
new file mode 100644
index 00000000000..0c0b5e58bde
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzip.c
@@ -0,0 +1,194 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzip api usage.
+ */
+
+#include <sys/stat.h>
+#include <zzip/zzip.h>
+#include <zzip/__string.h>
+#include <zzip/__mkdir.h>
+#include <zzip/__debug.h>
+#include <zzip/file.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "unzzipcat-zip.h"
+#include "unzzipdir-zip.h"
+#include "unzzip-states.h"
+
+static const char usage[] =
+{
+ "unzzip <dir>.. \n"
+ " - unzzip the files contained in a zip archive.\n"
+ " -p print content of files to pipe\n"
+ " -l list names in archive (short format)\n"
+};
+
+static int unzzip_version(void)
+{
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return 0;
+}
+
+static int unzzip_help(void)
+{
+ printf (usage);
+ return 0;
+}
+
+/* Functions used by unzzipcat-*.c: */
+int exitcode(int e)
+{
+ switch (e)
+ {
+ case ZZIP_NO_ERROR:
+ return EXIT_OK;
+ case ZZIP_OUTOFMEM: /* out of memory */
+ return EXIT_ENOMEM;
+ case ZZIP_DIR_OPEN: /* failed to open zipfile, see errno for details */
+ return EXIT_ZIP_NOT_FOUND;
+ case ZZIP_DIR_STAT: /* failed to fstat zipfile, see errno for details */
+ case ZZIP_DIR_SEEK: /* failed to lseek zipfile, see errno for details */
+ case ZZIP_DIR_READ: /* failed to read zipfile, see errno for details */
+ case ZZIP_DIR_TOO_SHORT:
+ case ZZIP_DIR_EDH_MISSING:
+ return EXIT_FILEFORMAT;
+ case ZZIP_DIRSIZE:
+ return EXIT_EARLY_END_OF_FILE;
+ case ZZIP_ENOENT:
+ return EXIT_FILE_NOT_FOUND;
+ case ZZIP_UNSUPP_COMPR:
+ return EXIT_UNSUPPORTED_COMPRESSION;
+ case ZZIP_CORRUPTED:
+ case ZZIP_UNDEF:
+ case ZZIP_DIR_LARGEFILE:
+ return EXIT_FILEFORMAT;
+ }
+ return EXIT_ERRORS;
+}
+
+/*
+ * NAME: remove_dotdotslash
+ * PURPOSE: To remove any "../" components from the given pathname
+ * ARGUMENTS: path: path name with maybe "../" components
+ * RETURNS: Nothing, "path" is modified in-place
+ * NOTE: removing "../" from the path ALWAYS shortens the path, never adds to it!
+ * Also, "path" is not used after creating it.
+ * So modifying "path" in-place is safe to do.
+ */
+static inline void
+remove_dotdotslash(char *path)
+{
+ /* Note: removing "../" from the path ALWAYS shortens the path, never adds to it! */
+ char *dotdotslash;
+ int warned = 0;
+
+ dotdotslash = path;
+ while ((dotdotslash = strstr(dotdotslash, "../")) != NULL)
+ {
+ /*
+ * Remove only if at the beginning of the pathname ("../path/name")
+ * or when preceded by a slash ("path/../name"),
+ * otherwise not ("path../name..")!
+ */
+ if (dotdotslash == path || dotdotslash[-1] == '/')
+ {
+ char *src, *dst;
+ if (!warned)
+ {
+ /* Note: the first time through the pathname is still intact */
+ fprintf(stderr, "Removing \"../\" path component(s) in %s\n", path);
+ warned = 1;
+ }
+ /* We cannot use strcpy(), as there "The strings may not overlap" */
+ for (src = dotdotslash+3, dst=dotdotslash; (*dst = *src) != '\0'; src++, dst++)
+ ;
+ }
+ else
+ dotdotslash +=3; /* skip this instance to prevent infinite loop */
+ }
+}
+
+static void makedirs(const char* name)
+{
+ char* p = strrchr(name, '/');
+ if (p) {
+ char* dir_name = _zzip_strndup(name, p-name);
+ makedirs(dir_name);
+ free (dir_name);
+ }
+ if (_zzip_mkdir(name, 0775) == -1 && errno != EEXIST)
+ {
+ DBG3("while mkdir %s : %s", name, strerror(errno));
+ }
+ errno = 0;
+}
+
+FILE* create_fopen(char* name, char* mode, int subdirs)
+{
+ char name_stripped[PATH_MAX];
+
+ strncpy(name_stripped, name, PATH_MAX);
+ remove_dotdotslash(name_stripped);
+
+ if (subdirs)
+ {
+ char* p = strrchr(name_stripped, '/');
+ if (p) {
+ char* dir_name = _zzip_strndup(name_stripped, p-name);
+ makedirs(dir_name);
+ free (dir_name);
+ }
+ }
+ return fopen(name_stripped, mode);
+}
+
+int
+main (int argc, char ** argv)
+{
+ int argn;
+ int exitcode = 0;
+ zzip_error_t error;
+
+ if (argc <= 1 || ! strcmp (argv[1], "--help"))
+ {
+ return unzzip_help();
+ }
+ if (! strcmp (argv[1], "--version"))
+ {
+ return unzzip_version();
+ }
+ if (! strcmp (argv[1], "-l") || ! strcmp(argv[1], "--list"))
+ {
+ argc -= 1; argv += 1;
+ return unzzip_show_list(argc, argv);
+ }
+ if (! strcmp (argv[1], "-v") || ! strcmp(argv[1], "--versions"))
+ {
+ if (argc == 2)
+ return unzzip_version(); /* compatible with info-zip */
+ argc -= 1; argv += 1;
+ return unzzip_long_list(argc, argv);
+ }
+ if (! strcmp (argv[1], "-p") || ! strcmp(argv[1], "--pipe"))
+ {
+ argc -= 1; argv += 1;
+ return unzzip_print(argc, argv);
+ }
+
+ if (! strcmp (argv[1], "-"))
+ {
+ fprintf(stderr, "unknown option %s", argv[1]);
+ return EXIT_INVALID_OPTION;
+ }
+
+ return unzzip_extract(argc, argv);
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-big.c b/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-big.c
new file mode 100644
index 00000000000..111ef47f36a
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-big.c
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzipfseeko api usage.
+ */
+
+#include <zzip/fseeko.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <zzip/__mkdir.h>
+#include <zzip/__string.h>
+#include <zzip/__debug.h>
+#include <zzip/__fnmatch.h>
+#include "unzzipcat-zip.h"
+#include "unzzip-states.h"
+
+/* Functions in unzzip.c: */
+extern int exitcode(int);
+extern FILE* create_fopen(char*, char*, int);
+
+static void unzzip_big_entry_fprint(ZZIP_ENTRY* entry, FILE* out)
+{
+ ZZIP_ENTRY_FILE* file = zzip_entry_fopen (entry, 0);
+ if (file)
+ {
+ char buffer[1024]; int len;
+ while ((len = zzip_entry_fread (buffer, 1024, 1, file)))
+ {
+ DBG2("entry read %i", len);
+ fwrite (buffer, len, 1, out);
+ }
+ DBG2("entry done %s", strerror(errno));
+ zzip_entry_fclose (file);
+ } else
+ {
+ DBG2("could not open entry: %s", strerror(errno));
+ }
+}
+
+static void unzzip_cat_file(FILE* disk, char* name, FILE* out)
+{
+ ZZIP_ENTRY_FILE* file = zzip_entry_ffile (disk, name);
+ if (file)
+ {
+ char buffer[1024]; int len;
+ while ((len = zzip_entry_fread (buffer, 1024, 1, file)))
+ fwrite (buffer, len, 1, out);
+
+ zzip_entry_fclose (file);
+ }
+}
+
+
+static int unzzip_cat (int argc, char ** argv, int extract)
+{
+ int done = 0;
+ int argn;
+ FILE* disk;
+
+ disk = fopen (argv[1], "rb");
+ if (! disk) {
+ perror(argv[1]);
+ return exitcode(errno);
+ }
+
+ if (argc == 2)
+ { /* print directory list */
+ ZZIP_ENTRY* entry = zzip_entry_findfirst(disk);
+ for (; entry ; entry = zzip_entry_findnext(entry))
+ {
+ char* name = zzip_entry_strdup_name (entry);
+ FILE* out = stdout;
+ if (! name) {
+ done = EXIT_WARNINGS;
+ continue;
+ }
+ if (extract) out = create_fopen(name, "wb", 1);
+ if (! out) {
+ if (errno != EISDIR) done = EXIT_ERRORS;
+ continue;
+ }
+ unzzip_cat_file (disk, name, out);
+ if (extract) fclose(out);
+ free (name);
+ }
+ return done;
+ }
+
+ if (argc == 3 && !extract)
+ { /* list from one spec */
+ ZZIP_ENTRY* entry = 0;
+ while ((entry = zzip_entry_findmatch(disk, argv[2], entry, 0, 0)))
+ {
+ unzzip_big_entry_fprint (entry, stdout);
+ }
+ return 0;
+ }
+
+ for (argn=1; argn < argc; argn++)
+ { /* list only the matching entries - each in order of commandline */
+ ZZIP_ENTRY* entry = zzip_entry_findfirst(disk);
+ for (; entry ; entry = zzip_entry_findnext(entry))
+ {
+ char* name = zzip_entry_strdup_name (entry);
+ DBG3(".. check '%s' to zip '%s'", argv[argn], name);
+ if (! _zzip_fnmatch (argv[argn], name,
+ _zzip_FNM_NOESCAPE|_zzip_FNM_PATHNAME|_zzip_FNM_PERIOD))
+ {
+ FILE* out = stdout;
+ if (extract) out = create_fopen(name, "wb", 1);
+ if (! out) {
+ if (errno != EISDIR) done = EXIT_ERRORS;
+ continue;
+ }
+ unzzip_cat_file (disk, name, out);
+ if (extract) fclose(out);
+ break; /* match loop */
+ }
+ free (name);
+ }
+ }
+ return done;
+}
+
+int unzzip_print (int argc, char ** argv)
+{
+ return unzzip_cat(argc, argv, 0);
+}
+
+int unzzip_extract (int argc, char ** argv)
+{
+ return unzzip_cat(argc, argv, 1);
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mem.c b/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mem.c
new file mode 100644
index 00000000000..6bd79b70b8d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mem.c
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzipmmap api usage.
+ */
+
+#include <zzip/memdisk.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <zzip/__mkdir.h>
+#include <zzip/__fnmatch.h>
+#include <zzip/__string.h>
+#include <zzip/__debug.h>
+#include "unzzipcat-zip.h"
+#include "unzzip-states.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+/* Functions in unzzip.c: */
+extern int exitcode(int);
+extern FILE* create_fopen(char*, char*, int);
+
+static void unzzip_mem_entry_fprint(ZZIP_MEM_DISK* disk,
+ ZZIP_MEM_ENTRY* entry, FILE* out)
+{
+ ZZIP_DISK_FILE* file = zzip_mem_entry_fopen (disk, entry);
+ if (file)
+ {
+ char buffer[1024]; int len;
+ while ((len = zzip_mem_disk_fread (buffer, 1024, 1, file)))
+ fwrite (buffer, len, 1, out);
+
+ zzip_mem_disk_fclose (file);
+ }
+}
+
+static void unzzip_mem_disk_cat_file(ZZIP_MEM_DISK* disk, char* name, FILE* out)
+{
+ ZZIP_DISK_FILE* file = zzip_mem_disk_fopen (disk, name);
+ if (file)
+ {
+ char buffer[1025]; int len;
+ while ((len = zzip_mem_disk_fread (buffer, 1, 1024, file)))
+ {
+ fwrite (buffer, 1, len, out);
+ }
+
+ zzip_mem_disk_fclose (file);
+ }
+}
+
+static int unzzip_cat (int argc, char ** argv, int extract)
+{
+ int done = 0;
+ int argn;
+ ZZIP_MEM_DISK* disk;
+
+ if (argc == 1)
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return EXIT_OK; /* better provide an archive argument */
+ }
+
+ disk = zzip_mem_disk_open (argv[1]);
+ if (! disk) {
+ DBG3("disk_open failed [%i] %s", errno, strerror(errno));
+ perror(argv[1]);
+ return exitcode(errno);
+ }
+
+ if (argc == 2)
+ { /* print directory list */
+ ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk);
+ DBG2("findfirst %p\n", entry);
+ for (; entry ; entry = zzip_mem_disk_findnext(disk, entry))
+ {
+ char* name = zzip_mem_entry_to_name (entry);
+ FILE* out = stdout;
+ if (extract) out = create_fopen(name, "wb", 1);
+ if (! out) {
+ if (errno != EISDIR) {
+ DBG3("can not open output file %i %s", errno, strerror(errno));
+ done = EXIT_ERRORS;
+ }
+ continue;
+ }
+ unzzip_mem_disk_cat_file (disk, name, out);
+ if (extract) fclose(out);
+ }
+ }
+ else if (argc == 3 && !extract)
+ { /* list from one spec */
+ ZZIP_MEM_ENTRY* entry = 0;
+ while ((entry = zzip_mem_disk_findmatch(disk, argv[2], entry, 0, 0)))
+ {
+ unzzip_mem_entry_fprint (disk, entry, stdout);
+ }
+ } else {
+ for (argn=1; argn < argc; argn++)
+ { /* list only the matching entries - each in order of commandline */
+ ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk);
+ for (; entry ; entry = zzip_mem_disk_findnext(disk, entry))
+ {
+ char* name = zzip_mem_entry_to_name (entry);
+ if (! _zzip_fnmatch (argv[argn], name,
+ _zzip_FNM_NOESCAPE|_zzip_FNM_PATHNAME|_zzip_FNM_PERIOD))
+ {
+ FILE* out = stdout;
+ if (extract) out = create_fopen(name, "wb", 1);
+ if (! out) {
+ if (errno != EISDIR) {
+ DBG3("can not open output file %i %s", errno, strerror(errno));
+ done = EXIT_ERRORS;
+ }
+ continue;
+ }
+ unzzip_mem_disk_cat_file (disk, name, out);
+ if (extract) fclose(out);
+ break; /* match loop */
+ }
+ }
+ }
+ }
+ zzip_mem_disk_close(disk);
+ return done;
+}
+
+int unzzip_print (int argc, char ** argv)
+{
+ return unzzip_cat(argc, argv, 0);
+}
+
+int unzzip_extract (int argc, char ** argv)
+{
+ return unzzip_cat(argc, argv, 1);
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mix.c b/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mix.c
new file mode 100644
index 00000000000..e18987ddd2c
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mix.c
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzip api usage.
+ */
+
+#include <zzip/lib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <zzip/__mkdir.h>
+#include <zzip/__string.h>
+#include <zzip/__fnmatch.h>
+#include <zzip/__debug.h>
+#include "unzzipcat-zip.h"
+#include "unzzip-states.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+/* Functions in unzzip.c: */
+extern int exitcode(int);
+extern FILE* create_fopen(char*, char*, int);
+
+static void unzzip_cat_file(ZZIP_DIR* disk, char* name, FILE* out)
+{
+ ZZIP_FILE* file = zzip_fopen(name, "rb");
+ if (file)
+ {
+ char buffer[1024]; int len;
+ while ((len = zzip_fread (buffer, 1, 1024, file)))
+ {
+ fwrite (buffer, 1, len, out);
+ }
+
+ zzip_fclose (file);
+ }
+}
+
+static int unzzip_cat (int argc, char ** argv, int extract)
+{
+ int done = 0;
+ int argn;
+ ZZIP_DIR* disk;
+
+ if (argc == 1)
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return EXIT_OK; /* better provide an archive argument */
+ }
+
+ disk = zzip_opendir (argv[1]);
+ if (! disk) {
+ DBG3("opendir failed [%i] %s", errno, strerror(errno));
+ perror(argv[1]);
+ return exitcode(errno);
+ }
+
+ if (argc == 2)
+ { /* list all */
+ ZZIP_DIRENT* entry = 0;
+ while((entry = zzip_readdir(disk)))
+ {
+ char* name = entry->d_name;
+ FILE* out = stdout;
+ if (extract) out = create_fopen(name, "wb", 1);
+ if (! out) {
+ if (errno != EISDIR) done = EXIT_ERRORS;
+ continue;
+ }
+ unzzip_cat_file (disk, name, out);
+ if (extract) fclose(out);
+ }
+ DBG2("readdir done %s", strerror(errno));
+ }
+ else
+ { /* list only the matching entries - in order of zip directory */
+ ZZIP_DIRENT* entry = 0;
+ while((entry = zzip_readdir(disk)))
+ {
+ char* name = entry->d_name;
+ for (argn=1; argn < argc; argn++)
+ {
+ if (! _zzip_fnmatch (argv[argn], name,
+ _zzip_FNM_NOESCAPE|_zzip_FNM_PATHNAME|_zzip_FNM_PERIOD))
+ {
+ FILE* out = stdout;
+ char* zip_name = argv[1];
+ int zip_name_len = strlen(zip_name);
+ int name_len = strlen(name);
+ char* mix_name = malloc(zip_name_len + 2 + name_len);
+ if (zip_name_len > 4 && !strcmp(zip_name+zip_name_len-4, ".zip"))
+ zip_name_len -= 4;
+ memcpy(mix_name, zip_name, zip_name_len);
+ mix_name[zip_name_len] = '/';
+ strcpy(mix_name + zip_name_len + 1, name);
+ if (extract) out = create_fopen(name, "wb", 1);
+ if (! out) {
+ if (errno != EISDIR) done = EXIT_ERRORS;
+ continue;
+ }
+ fprintf(stderr, "%s %s -> %s\n", zip_name, name, mix_name);
+ /* 'test1.zip' 'README' -> 'test1/README' */
+ unzzip_cat_file (disk, mix_name, out);
+ if (extract) fclose(out);
+ break; /* match loop */
+ }
+ }
+ }
+ }
+ zzip_closedir(disk);
+ return done;
+}
+
+int unzzip_print (int argc, char ** argv)
+{
+ return unzzip_cat(argc, argv, 0);
+}
+
+int unzzip_extract (int argc, char ** argv)
+{
+ return unzzip_cat(argc, argv, 1);
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.c b/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.c
new file mode 100644
index 00000000000..dd78c2be641
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.c
@@ -0,0 +1,125 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzip api usage.
+ */
+
+#include <zzip/lib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <zzip/__mkdir.h>
+#include <zzip/__string.h>
+#include <zzip/__fnmatch.h>
+#include <zzip/__debug.h>
+#include "unzzipcat-zip.h"
+#include "unzzip-states.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+/* Functions in unzzip.c: */
+extern int exitcode(int);
+extern FILE* create_fopen(char*, char*, int);
+
+static void unzzip_cat_file(ZZIP_DIR* disk, char* name, FILE* out)
+{
+ ZZIP_FILE* file = zzip_file_open (disk, name, 0);
+ if (file)
+ {
+ char buffer[1024]; int len;
+ while ((len = zzip_file_read (file, buffer, 1024)))
+ {
+ fwrite (buffer, 1, len, out);
+ }
+
+ zzip_file_close (file);
+ }
+}
+
+static int unzzip_cat (int argc, char ** argv, int extract)
+{
+ int done = 0;
+ int argn;
+ ZZIP_DIR* disk;
+ zzip_error_t error;
+
+ if (argc == 1)
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return EXIT_OK; /* better provide an archive argument */
+ }
+
+ disk = zzip_dir_open (argv[1], &error);
+ if (! disk) {
+ fprintf(stderr, "%s: %s\n", argv[1], zzip_strerror(error));
+ return exitcode(error);
+ }
+
+ if (argc == 2)
+ { /* list all */
+ ZZIP_DIRENT entry;
+ while(zzip_dir_read(disk, &entry))
+ {
+ char* name = entry.d_name;
+ FILE* out = stdout;
+ if (extract) out = create_fopen(name, "wb", 1);
+ if (! out) {
+ DBG3("fopen' %s : %s", name, strerror(errno));
+ if (errno != EISDIR) done = EXIT_ERRORS;
+ continue;
+ }
+ unzzip_cat_file (disk, name, out);
+ if (extract) fclose(out);
+ }
+ }
+ else
+ { /* list only the matching entries - in order of zip directory */
+ ZZIP_DIRENT entry;
+ while(zzip_dir_read(disk, &entry))
+ {
+ char* name = entry.d_name;
+ for (argn=1; argn < argc; argn++)
+ {
+ if (! _zzip_fnmatch (argv[argn], name,
+ _zzip_FNM_NOESCAPE|_zzip_FNM_PATHNAME|_zzip_FNM_PERIOD))
+ {
+ FILE* out = stdout;
+ if (extract) out = create_fopen(name, "wb", 1);
+ if (! out) {
+ DBG3("fopen. %s : %s", name, strerror(errno));
+ if (errno != EISDIR) done = EXIT_ERRORS;
+ continue;
+ }
+ unzzip_cat_file (disk, name, out);
+ if (extract) fclose(out);
+ break; /* match loop */
+ }
+ }
+ }
+ }
+ zzip_dir_close(disk);
+ return done;
+}
+
+int unzzip_print (int argc, char ** argv)
+{
+ return unzzip_cat(argc, argv, 0);
+}
+
+int unzzip_extract (int argc, char ** argv)
+{
+ return unzzip_cat(argc, argv, 1);
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.h b/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.h
new file mode 100644
index 00000000000..cba2a40a16f
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.h
@@ -0,0 +1,10 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzip api usage.
+ */
+
+extern int unzzip_print(int argc, char** argv);
+extern int unzzip_extract(int argc, char** argv);
+
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-big.c b/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-big.c
new file mode 100644
index 00000000000..7b66875d115
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-big.c
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzipfseeko api usage.
+ */
+
+#define _ZZIP_ENTRY_STRUCT 1
+
+#include <zzip/fseeko.h>
+#include <zzip/fetch.h>
+#include <zzip/__fnmatch.h>
+#include <stdlib.h>
+#include <string.h>
+#include "unzzipdir-zip.h"
+#include "unzzip-states.h"
+
+static const char* comprlevel[] = {
+ "stored", "shrunk", "redu:1", "redu:2", "redu:3", "redu:4",
+ "impl:N", "toknze", "defl:N", "defl:B", "impl:B" };
+
+static int exitcode(int e)
+{
+ return EXIT_ERRORS;
+}
+
+static int
+unzzip_list (int argc, char ** argv, int verbose)
+{
+ int argn;
+ FILE* disk;
+
+ disk = fopen (argv[1], "rb");
+ if (! disk) {
+ perror(argv[1]);
+ return exitcode(errno);
+ }
+
+ if (argc == 2)
+ { /* print directory list */
+ ZZIP_ENTRY* entry = zzip_entry_findfirst(disk);
+ for (; entry ; entry = zzip_entry_findnext(entry))
+ {
+ char* name = zzip_entry_strdup_name (entry);
+ unsigned compr = zzip_entry_compr(entry);
+ const char* defl = (compr < sizeof(comprlevel)) ? comprlevel[compr] : "(redu)";
+ printf (" %s %s\n", defl, name);
+ free (name);
+ }
+ return 0;
+ }
+
+ for (argn=1; argn < argc; argn++)
+ { /* list only the matching entries - each in order of commandline */
+ ZZIP_ENTRY* entry = zzip_entry_findfirst(disk);
+ for (; entry ; entry = zzip_entry_findnext(entry))
+ {
+ char* name = zzip_entry_strdup_name (entry);
+ unsigned compr = zzip_entry_compr(entry);
+ const char* defl = (compr < sizeof(comprlevel)) ? comprlevel[compr] : "(redu)";
+ printf (" %s %s\n", defl, name);
+ free (name);
+ }
+ }
+ return 0;
+}
+
+int
+unzzip_long_list (int argc, char ** argv)
+{
+ return unzzip_list(argc, argv, 1);
+}
+
+int
+unzzip_show_list (int argc, char ** argv)
+{
+ return unzzip_list(argc, argv, 0);
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mem.c b/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mem.c
new file mode 100644
index 00000000000..191c4de7208
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mem.c
@@ -0,0 +1,139 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzipmmap api usage.
+ */
+
+#include <zzip/memdisk.h>
+#include <zzip/__debug.h>
+#include <zzip/__fnmatch.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "unzzipdir-zip.h"
+#include "unzzip-states.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+static const char* comprlevel[] = {
+ "stored", "shrunk", "redu:1", "redu:2", "redu:3", "redu:4",
+ "impl:N", "toknze", "defl:N", "defl:B", "impl:B" };
+
+static int exitcode(int e)
+{
+ return EXIT_ERRORS;
+}
+
+static int
+unzzip_list (int argc, char ** argv, int verbose)
+{
+ int argn;
+ ZZIP_MEM_DISK* disk;
+
+ if (argc == 1)
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return EXIT_OK; /* better provide an archive argument */
+ }
+
+ disk = zzip_mem_disk_open (argv[1]);
+ if (! disk) {
+ DBG3("disk_open failed [%i] %s", errno, strerror(errno));
+ perror(argv[1]);
+ return exitcode(errno);
+ }
+
+ if (argc == 2)
+ { /* list all */
+ ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk);
+ DBG2("findfirst %p", entry);
+ for (; entry ; entry = zzip_mem_disk_findnext(disk, entry))
+ {
+ char* name = zzip_mem_entry_to_name (entry);
+ long long usize = entry->zz_usize;
+ if (!verbose)
+ {
+ printf ("%22lli %s\n", usize, name);
+ } else
+ {
+ long long csize = entry->zz_csize;
+ unsigned compr = entry->zz_compr;
+ const char* defl = (compr < sizeof(comprlevel)) ? comprlevel[compr] : "(redu)";
+ printf ("%lli/%lli %s %s\n", csize, usize, defl, name);
+ }
+ }
+ }
+ else if (argc == 3)
+ { /* list from one spec */
+ ZZIP_MEM_ENTRY* entry = 0;
+ while ((entry = zzip_mem_disk_findmatch(disk, argv[2], entry, 0, 0)))
+ {
+ char* name = zzip_mem_entry_to_name (entry);
+ long long usize = entry->zz_usize;
+ if (!verbose)
+ {
+ printf ("%22lli %s\n", usize, name);
+ } else
+ {
+ long long csize = entry->zz_csize;
+ unsigned compr = entry->zz_compr;
+ const char* defl = (compr < sizeof(comprlevel)) ? comprlevel[compr] : "(redu)";
+ printf ("%lli/%lli %s %s\n", csize, usize, defl, name);
+ }
+ }
+ }
+ else
+ { /* list only the matching entries - in order of zip directory */
+ ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk);
+ for (; entry ; entry = zzip_mem_disk_findnext(disk, entry))
+ {
+ char* name = zzip_mem_entry_to_name (entry);
+ for (argn=1; argn < argc; argn++)
+ {
+ if (! _zzip_fnmatch (argv[argn], name,
+ _zzip_FNM_NOESCAPE|_zzip_FNM_PATHNAME|_zzip_FNM_PERIOD))
+ {
+ char* name = zzip_mem_entry_to_name (entry);
+ long long usize = entry->zz_usize;
+ if (!verbose)
+ {
+ printf ("%22lli %s\n", usize, name);
+ } else
+ {
+ long long csize = entry->zz_csize;
+ unsigned compr = entry->zz_compr;
+ const char* defl = (compr < sizeof(comprlevel)) ? comprlevel[compr] : "(redu)";
+ printf ("%lli/%lli %s %s\n", csize, usize, defl, name);
+ }
+ break; /* match loop */
+ }
+ }
+ }
+ }
+ zzip_mem_disk_close(disk);
+ return EXIT_OK;
+}
+
+int
+unzzip_long_list (int argc, char ** argv)
+{
+ return unzzip_list(argc, argv, 1);
+}
+
+int
+unzzip_show_list (int argc, char ** argv)
+{
+ return unzzip_list(argc, argv, 0);
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mix.c b/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mix.c
new file mode 100644
index 00000000000..a8d2dbaa564
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mix.c
@@ -0,0 +1,145 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzip api usage.
+ */
+
+#include <zzip/lib.h>
+#include <zzip/__debug.h>
+#include <zzip/__fnmatch.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "unzzipdir-zip.h"
+#include "unzzip-states.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+static const char* comprlevel[] = {
+ "stored", "shrunk", "redu:1", "redu:2", "redu:3", "redu:4",
+ "impl:N", "toknze", "defl:N", "defl:B", "impl:B" };
+
+static int exitcode(int e)
+{
+ switch (e)
+ {
+ case ZZIP_NO_ERROR:
+ return EXIT_OK;
+ case ZZIP_OUTOFMEM: /* out of memory */
+ return EXIT_ENOMEM;
+ case ZZIP_DIR_OPEN: /* failed to open zipfile, see errno for details */
+ return EXIT_ZIP_NOT_FOUND;
+ case ZZIP_DIR_STAT: /* failed to fstat zipfile, see errno for details */
+ case ZZIP_DIR_SEEK: /* failed to lseek zipfile, see errno for details */
+ case ZZIP_DIR_READ: /* failed to read zipfile, see errno for details */
+ case ZZIP_DIR_TOO_SHORT:
+ case ZZIP_DIR_EDH_MISSING:
+ return EXIT_FILEFORMAT;
+ case ZZIP_DIRSIZE:
+ return EXIT_EARLY_END_OF_FILE;
+ case ZZIP_ENOENT:
+ return EXIT_FILE_NOT_FOUND;
+ case ZZIP_UNSUPP_COMPR:
+ return EXIT_UNSUPPORTED_COMPRESSION;
+ case ZZIP_CORRUPTED:
+ case ZZIP_UNDEF:
+ case ZZIP_DIR_LARGEFILE:
+ return EXIT_FILEFORMAT;
+ }
+ return EXIT_ERRORS;
+}
+
+static int
+unzzip_list (int argc, char ** argv, int verbose)
+{
+ int argn;
+ ZZIP_DIR* disk;
+
+ if (argc == 1)
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return EXIT_OK; /* better provide an archive argument */
+ }
+
+ disk = zzip_opendir (argv[1]);
+ if (! disk) {
+ DBG3("opendir failed [%i] %s", errno, strerror(errno));
+ perror(argv[1]);
+ return exitcode(errno);
+ }
+
+ if (argc == 2)
+ { /* list all */
+ ZZIP_DIRENT* entry = 0;
+ while((entry = zzip_readdir(disk)))
+ {
+ char* name = entry->d_name;
+ long long usize = entry->st_size;
+ if (!verbose)
+ {
+ printf ("%22lli %s\n", usize, name);
+ } else
+ {
+ long long csize = entry->d_csize;
+ unsigned compr = entry->d_compr;
+ const char* defl = (compr < sizeof(comprlevel)) ? comprlevel[compr] : "(redu)";
+ printf ("%lli/%lli %s %s\n", usize, csize, defl, name);
+ }
+ }
+ DBG2("readdir done %s", strerror(errno));
+ }
+ else
+ { /* list only the matching entries - in order of zip directory */
+ ZZIP_DIRENT* entry = 0;
+ while((entry = zzip_readdir(disk)))
+ {
+ char* name = entry->d_name;
+ for (argn=1; argn < argc; argn++)
+ {
+ if (! _zzip_fnmatch (argv[argn], name,
+ _zzip_FNM_NOESCAPE|_zzip_FNM_PATHNAME|_zzip_FNM_PERIOD))
+ {
+ long long usize = entry->st_size;
+ if (!verbose)
+ {
+ printf ("%22lli %s\n", usize, name);
+ } else
+ {
+ long long csize = entry->d_csize;
+ unsigned compr = entry->d_compr;
+ const char* defl = (compr < sizeof(comprlevel)) ? comprlevel[compr] : "(redu)";
+ printf ("%lli/%lli %s %s\n", usize, csize, defl, name);
+ }
+ break; /* match loop */
+ }
+ }
+ }
+ DBG2("readdir done %s", strerror(errno));
+ }
+ zzip_closedir(disk);
+ return 0;
+}
+
+int
+unzzip_long_list (int argc, char ** argv)
+{
+ return unzzip_list(argc, argv, 1);
+}
+
+int
+unzzip_show_list (int argc, char ** argv)
+{
+ return unzzip_list(argc, argv, 0);
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.c b/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.c
new file mode 100644
index 00000000000..55801d83367
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.c
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzip api usage.
+ */
+
+#include <zzip/lib.h>
+#include <zzip/__fnmatch.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "unzzipdir-zip.h"
+#include "unzzip-states.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+static const char* comprlevel[] = {
+ "stored", "shrunk", "redu:1", "redu:2", "redu:3", "redu:4",
+ "impl:N", "toknze", "defl:N", "defl:B", "impl:B" };
+
+static int exitcode(int e)
+{
+ switch (e)
+ {
+ case ZZIP_NO_ERROR:
+ return EXIT_OK;
+ case ZZIP_OUTOFMEM: /* out of memory */
+ return EXIT_ENOMEM;
+ case ZZIP_DIR_OPEN: /* failed to open zipfile, see errno for details */
+ return EXIT_ZIP_NOT_FOUND;
+ case ZZIP_DIR_STAT: /* failed to fstat zipfile, see errno for details */
+ case ZZIP_DIR_SEEK: /* failed to lseek zipfile, see errno for details */
+ case ZZIP_DIR_READ: /* failed to read zipfile, see errno for details */
+ case ZZIP_DIR_TOO_SHORT:
+ case ZZIP_DIR_EDH_MISSING:
+ return EXIT_FILEFORMAT;
+ case ZZIP_DIRSIZE:
+ return EXIT_EARLY_END_OF_FILE;
+ case ZZIP_ENOENT:
+ return EXIT_FILE_NOT_FOUND;
+ case ZZIP_UNSUPP_COMPR:
+ return EXIT_UNSUPPORTED_COMPRESSION;
+ case ZZIP_CORRUPTED:
+ case ZZIP_UNDEF:
+ case ZZIP_DIR_LARGEFILE:
+ return EXIT_FILEFORMAT;
+ }
+ return EXIT_ERRORS;
+}
+
+static int
+unzzip_list (int argc, char ** argv, int verbose)
+{
+ int argn;
+ ZZIP_DIR* disk;
+ zzip_error_t error;
+
+ if (argc == 1)
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return EXIT_OK; /* better provide an archive argument */
+ }
+
+ disk = zzip_dir_open (argv[1], &error);
+ if (! disk) {
+ perror(argv[1]);
+ return exitcode(error);
+ }
+
+ if (argc == 2)
+ { /* list all */
+ ZZIP_DIRENT entry;
+ while(zzip_dir_read(disk, &entry))
+ {
+ char* name = entry.d_name;
+ long long usize = entry.st_size;
+ if (!verbose)
+ {
+ printf ("%22lli %s\n", usize, name);
+ } else
+ {
+ long long csize = entry.d_csize;
+ unsigned compr = entry.d_compr;
+ const char* defl = (compr < sizeof(comprlevel)) ? comprlevel[compr] : "(redu)";
+ printf ("%lli/%lli %s %s\n", usize, csize, defl, name);
+ }
+ }
+ }
+ else
+ { /* list only the matching entries - in order of zip directory */
+ ZZIP_DIRENT entry;
+ while(zzip_dir_read(disk, &entry))
+ {
+ char* name = entry.d_name;
+ for (argn=1; argn < argc; argn++)
+ {
+ if (! _zzip_fnmatch (argv[argn], name,
+ _zzip_FNM_NOESCAPE|_zzip_FNM_PATHNAME|_zzip_FNM_PERIOD))
+ {
+ long long usize = entry.st_size;
+ if (!verbose)
+ {
+ printf ("%22lli %s\n", usize, name);
+ } else
+ {
+ long long csize = entry.d_csize;
+ unsigned compr = entry.d_compr;
+ const char* defl = (compr < sizeof(comprlevel)) ? comprlevel[compr] : "(redu)";
+ printf ("%lli/%lli %s %s\n", usize, csize, defl, name);
+ }
+ break; /* match loop */
+ }
+ }
+ }
+ }
+ zzip_dir_close(disk);
+ return 0;
+}
+
+int
+unzzip_long_list (int argc, char ** argv)
+{
+ return unzzip_list(argc, argv, 1);
+}
+
+int
+unzzip_show_list (int argc, char ** argv)
+{
+ return unzzip_list(argc, argv, 0);
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.h b/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.h
new file mode 100644
index 00000000000..683c1387858
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.h
@@ -0,0 +1,10 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzip api usage.
+ */
+
+extern int unzzip_show_list(int argc, char** argv);
+extern int unzzip_long_list(int argc, char** argv);
+
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c b/Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c
new file mode 100644
index 00000000000..9d8c2edc7fb
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzipfseeko api usage.
+ */
+
+#include <zzip/fseeko.h>
+#include <zzip/__fnmatch.h>
+#include <stdlib.h>
+#include <string.h>
+
+static const char usage[] =
+{
+ "unzzipshow <zip> [names].. \n"
+ " - unzzip data content of files contained in a zip archive.\n"
+};
+
+static void zzip_entry_fprint(ZZIP_ENTRY* entry, FILE* out)
+{
+ ZZIP_ENTRY_FILE* file = zzip_entry_fopen (entry, 0);
+ if (file)
+ {
+ char buffer[1024]; int len;
+ while ((len = zzip_entry_fread (buffer, 1024, 1, file)))
+ fwrite (buffer, len, 1, out);
+
+ zzip_entry_fclose (file);
+ }
+}
+
+static void zzip_cat_file(FILE* disk, char* name, FILE* out)
+{
+ ZZIP_ENTRY_FILE* file = zzip_entry_ffile (disk, name);
+ if (file)
+ {
+ char buffer[1024]; int len;
+ while ((len = zzip_entry_fread (buffer, 1024, 1, file)))
+ fwrite (buffer, len, 1, out);
+
+ zzip_entry_fclose (file);
+ }
+}
+
+int
+main (int argc, char ** argv)
+{
+ int argn;
+ FILE* disk;
+
+ if (argc <= 1 || ! strcmp (argv[1], "--help"))
+ {
+ printf (usage);
+ return 0;
+ }
+ if (! strcmp (argv[1], "--version"))
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return 0;
+ }
+
+ disk = fopen (argv[1], "r");
+ if (! disk) {
+ perror(argv[1]);
+ return -1;
+ }
+
+ if (argc == 2)
+ { /* print directory list */
+ ZZIP_ENTRY* entry = zzip_entry_findfirst(disk);
+ if (! entry) puts("no first entry!\n");
+ for (; entry ; entry = zzip_entry_findnext(entry))
+ {
+ char* name = zzip_entry_strdup_name (entry);
+ printf ("%s\n", name);
+ free (name);
+ }
+ return 0;
+ }
+
+ if (argc == 3)
+ { /* list from one spec */
+ ZZIP_ENTRY* entry = 0;
+ while ((entry = zzip_entry_findmatch(disk, argv[2], entry, 0, 0)))
+ zzip_entry_fprint (entry, stdout);
+
+ return 0;
+ }
+
+ for (argn=1; argn < argc; argn++)
+ { /* list only the matching entries - each in order of commandline */
+ ZZIP_ENTRY* entry = zzip_entry_findfirst(disk);
+ for (; entry ; entry = zzip_entry_findnext(entry))
+ {
+ char* name = zzip_entry_strdup_name (entry);
+ if (! _zzip_fnmatch (argv[argn], name,
+ _zzip_FNM_NOESCAPE|_zzip_FNM_PATHNAME|_zzip_FNM_PERIOD))
+ zzip_cat_file (disk, name, stdout);
+ free (name);
+ }
+ }
+ return 0;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/zzcat.c b/Build/source/libs/zziplib/zziplib-src/bins/zzcat.c
new file mode 100644
index 00000000000..63026e048c7
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/zzcat.c
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB License
+ */
+
+#include <zzip/zzip.h>
+#include <stdio.h>
+#include <string.h>
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+static const char usage[] =
+{
+ " zzcat <file>... \n"
+ " - prints the file to stdout, so you may want to redirect the output; \n"
+ " the file can be a normal file or an inflated part of a zip-archive, \n"
+ " to get 'README' from dist.zip you may write \n"
+ " zzcat dist/README \n"
+};
+
+int
+main (int argc, char ** argv)
+{
+ int argn;
+
+ if (argc <= 1 || ! strcmp (argv[1], "--help"))
+ {
+ printf (usage);
+ return 0;
+ }
+ if (! strcmp (argv[1], "--version"))
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return 0;
+ }
+
+ for (argn=1; argn < argc; argn++)
+ {
+ ZZIP_FILE* fp = zzip_open (argv[argn], O_RDONLY|O_BINARY);
+
+ if (! fp)
+ {
+ perror (argv[argn]);
+ continue;
+ }else{
+ char buf[17];
+ int n;
+
+ /* read chunks of 16 bytes into buf and print them to stdout */
+ while (0 < (n = zzip_read(fp, buf, 16)))
+ {
+ buf[n] = '\0';
+# ifdef STDOUT_FILENO
+ write (STDOUT_FILENO, buf, n);
+# else
+ fwrite (buf, 1, n, stdout);
+# endif
+ }
+
+ if (n == -1)
+ perror (argv[argn]);
+ }
+ }
+
+ return 0;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/zzdir.c b/Build/source/libs/zziplib/zziplib-src/bins/zzdir.c
new file mode 100644
index 00000000000..acbcac44d2b
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/zzdir.c
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ */
+
+#include <zzip/zzip.h>
+#include <stdio.h>
+#include <string.h>
+
+static const char usage[] =
+{
+ "zzdir <dir>.. \n"
+ " - prints a content table to stdout, but the dir can also be a zip-arch."
+ "\n"
+ " To show the contents of a zip-archive named 'test.zip', you may write \n"
+ " zzdir test \n"
+};
+
+int
+main (int argc, char ** argv)
+{
+ int argn;
+ int exitcode = 0;
+
+ if (argc <= 1 || ! strcmp (argv[1], "--help"))
+ {
+ printf (usage);
+ return 0;
+ }
+ if (! strcmp (argv[1], "--version"))
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return 0;
+ }
+
+ for (argn=1; argn < argc; argn++)
+ {
+ ZZIP_DIR * dir;
+ ZZIP_DIRENT * d;
+
+ dir = zzip_opendir(argv[argn]);
+ if (! dir)
+ {
+ fprintf (stderr, "did not open %s: ", argv[argn]);
+ perror(argv[argn]);
+ exitcode++;
+ continue;
+ }
+
+ if (argc > 2) printf ("%s: \n", argv[argn]);
+
+ /* read each dir entry and show one line of info per file */
+ while ((d = zzip_readdir (dir)))
+ {
+ /* orignalsize / compression-type / compression-ratio / filename */
+ if (d->st_size > 999999)
+ {
+ printf ("%5dK %-9s %2d%% %s\n",
+ d->st_size>>10,
+ zzip_compr_str(d->d_compr),
+ 100 - (d->d_csize|1)/((d->st_size/100)|1),
+ d->d_name);
+ }else{
+ printf ("%6d %-9s %2d%% %s\n",
+ d->st_size,
+ zzip_compr_str(d->d_compr),
+ 100 - (d->d_csize|1)*100/(d->st_size|1),
+ d->d_name);
+ }
+ }
+
+ zzip_closedir(dir);
+ }
+
+ return exitcode;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/zzip.c b/Build/source/libs/zziplib/zziplib-src/bins/zzip.c
new file mode 100644
index 00000000000..4ec0e1296b0
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/zzip.c
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzip api usage.
+ * (the write-api is work in progress, beware)
+ */
+
+#define _ZZIP_WRITE_SOURCE
+
+#include <zzip/write.h>
+#include <stdio.h>
+#include <string.h>
+#include "zzipmake-zip.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+static const char usage[] =
+{
+ "zzip <dir> files... \n"
+ " - zzip the files into a zip area."
+};
+
+int
+main (int argc, char ** argv)
+{
+ int argn;
+ int exitcode = 0;
+ ZZIP_DIR * dir;
+
+ if (argc <= 1 || ! strcmp (argv[1], "--help"))
+ {
+ printf (usage);
+ return 0;
+ }
+ if (! strcmp (argv[1], "--version"))
+ {
+# if defined _ZZIP_ENABLE_WRITE
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION " - W/ -D_ZZIP_ENABLE_WRITE\n");
+# else
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION " - NO -D_ZZIP_ENABLE_WRITE\n");
+# endif
+ return 0;
+ }
+
+ return rezzip_make(argc, argv);
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/zziplib.m4 b/Build/source/libs/zziplib/zziplib-src/bins/zziplib.m4
new file mode 100644
index 00000000000..d5728ca3d76
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/zziplib.m4
@@ -0,0 +1,105 @@
+dnl this macro has been copied from /usr/share/aclocal/pkg.m4
+dnl modified to check only for zziplib. You are advised to use
+dnl pgkconfig macro directly instead. It is only installed to
+dnl the convenience of software makers who do not want to have
+dnl yet another package dependency when building zziplib-based
+dnl projects. In general, you can include in your configure.ac
+dnl some line like
+dnl PKG_CHECK_ZZIPLIB([ZZIP],[0.10.75])
+dnl in order to get the two autoconf/automake subst variables
+dnl named ZZIP_CFLAGS and ZZIP_LIBS respectively.
+
+dnl PKG_CHECK_ZZIPLIB(ZZIP, minversion, action-if, action-not)
+dnl defines ZZIP_LIBS, ZZIP_CFLAGS, see pkg-config man page
+dnl also defines ZZIP_PKG_ERRORS on error
+AC_DEFUN([PKG_CHECK_ZZIPLIB], [# checking for zziplib cflags/libs $2
+ succeeded=no
+
+ if test -z "$PKG_CONFIG"; then
+ AC_PATH_PROG([PKG_CONFIG],[pkg-config],[no])
+ fi
+
+ if test "$PKG_CONFIG" = "no" ; then
+ dnl we stick in an extra section that takes advantage of `zzip-config`
+ dnl script that might be there and carry cflags/libs info as well.
+ AC_PATH_PROG([ZZIP_CONFIG], [zzip-config], [no])
+ if test "$ZZIP_CONFIG" = "no" ; then
+ echo "*** Neither config spec could be found - there was no archaic"
+ echo "*** zzip-config script around and no pkg-config script in the"
+ echo "*** PATH. Make sure that either one is in your path, or set"
+ echo "*** set the PKG_CONFIG environment variable to the full"
+ echo "*** path to pkg-config. See http://zziplib.sf.net - or see"
+ echo "*** http://www.freedesktop.org/software/pkgconfig for more."
+ else
+ AC_MSG_CHECKING($1_LIBS)
+ $1_LIBS=`$ZZIP_CONFIG --libs 2>/dev/null`
+ AC_MSG_RESULT($[]$1_LIBS)
+
+ if test ".$[]$1_LIBS" != "." ; then
+ AC_MSG_CHECKING($1_CFLAGS)
+ $1_CFLAGS=`$ZZIP_CONFIG --cflags 2>/dev/null`
+ AC_MSG_RESULT($[]$1_CFLAGS)
+ succeeded="yes"
+ else
+ AC_MSG_CHECKING($1_CFLAGS)
+ $1_CFLAGS=`$ZZIP_CONFIG --cflags 2>&1`
+ AC_MSG_RESULT([(detecting errors...)])
+ AC_MSG_WARN([... there is a problem with zzip-config])
+ AC_MSG_WARN([... $[]$1_CFLAGS])
+ AC_MSG_WARN([... inference of library requirements from prefix])
+ succeeded=`echo $ZZIP_CONFIG | sed -e 's,/[^/]*,,'` # dirname
+ $1_CFLAGS=""
+ $1_LIBS=""
+ if test "/$succeeded" != "//usr" ; then
+ test -d "$succeeded/include" && $1_CFLAGS="-I$succeeded/include "
+ test -d "$succeeded/lib" && $1_LIBS="-L$succeeded/lib "
+ fi
+ $1_LIBS="$[]$1_LIBS -lzzip -lz"
+ succeeded="yes"
+ AC_MSG_CHECKING($1_CFLAGS... guessed)
+ AC_MSG_RESULT($[]$1_CFLAGS)
+ AC_MSG_CHECKING($1_LIBS... guessed)
+ AC_MSG_RESULT($[]$1_LIBS)
+ fi
+ fi
+ else
+ PKG_CONFIG_MIN_VERSION=0.9.0
+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+ AC_MSG_CHECKING(for zziplib[]ifelse([$2],,,[ >= $2]))
+
+ if $PKG_CONFIG --exists "zziplib[]ifelse([$2],,,[ >= $2])" ; then
+ AC_MSG_RESULT(yes)
+ succeeded=yes
+
+ AC_MSG_CHECKING($1_CFLAGS)
+ $1_CFLAGS=`$PKG_CONFIG --cflags "zziplib[]ifelse([$2],,,[ >= $2])"`
+ AC_MSG_RESULT($$1_CFLAGS)
+
+ AC_MSG_CHECKING($1_LIBS)
+ $1_LIBS=`$PKG_CONFIG --libs "zziplib[]ifelse([$2],,,[ >= $2])"`
+ AC_MSG_RESULT($$1_LIBS)
+ else
+ $1_CFLAGS=""
+ $1_LIBS=""
+ ## If we have a custom action on failure, don't print errors, but
+ ## do set a variable so people can do so.
+ $1_PKG_ERRORS=`$PKG_CONFIG dnl
+ --errors-to-stdout --print-errors "zziplib[]ifelse([$2],,,[ >= $2])"`
+ ifelse([$4], ,echo $$1_PKG_ERRORS,)
+ fi
+
+ AC_SUBST($1_CFLAGS)
+ AC_SUBST($1_LIBS)
+ else
+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
+ fi
+ fi
+
+ if test $succeeded = yes; then
+ ifelse([$3], , :, [$3])
+ else
+ succeeded="zziplib[]ifelse([$2],,,[ >= $2])"
+ ifelse([$4], ,[AC_MSG_ERROR([Library requirements ($succeeded) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.])], [$4])
+ fi
+])
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/zzipmake-zip.c b/Build/source/libs/zziplib/zziplib-src/bins/zzipmake-zip.c
new file mode 100644
index 00000000000..8e09c31d90f
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/zzipmake-zip.c
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzip api usage.
+ * (the write-api is work in progress, beware)
+ */
+
+#define _ZZIP_WRITE_SOURCE
+
+#include <zzip/write.h>
+#include <stdio.h>
+#include <string.h>
+#include "zzipmake-zip.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+int rezzip_make (int argc, char ** argv)
+{
+ int argn;
+ int exitcode = 0;
+ ZZIP_DIR * dir;
+
+ dir = zzip_dir_creat(argv[1], 0755);
+ if (! dir)
+ {
+ fprintf (stderr, "did not creat %s: \n", argv[1]);
+ perror(argv[1]);
+ if (1)
+ return 1;
+ else
+ fprintf (stderr, "(ignored)\n");
+ }
+
+ for (argn=2; argn < argc; argn++)
+ {
+ int input = open (argv[argn], O_RDONLY);
+ if (input == -1)
+ {
+ perror (argv[argn]);
+ continue;
+ }
+ else
+ {
+ char buf[17]; zzip_ssize_t n;
+ ZZIP_FILE* output = zzip_file_creat (dir, argv[argn], 0755);
+ if (! output)
+ {
+ fprintf (stderr, "|did not open %s: \n", argv[argn]);
+ fprintf (stderr, "|%s: %s\n", argv[argn],
+ zzip_strerror_of(dir));
+ continue;
+ }
+
+ while ((n = read (input, buf, 16)))
+ {
+ zzip_write (output, buf, n);
+ }
+ zzip_close (output);
+ }
+ close (input);
+ }
+ zzip_dir_close(dir);
+
+ return exitcode;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/zzipmake-zip.h b/Build/source/libs/zziplib/zziplib-src/bins/zzipmake-zip.h
new file mode 100644
index 00000000000..b0d9da095bb
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/zzipmake-zip.h
@@ -0,0 +1,9 @@
+/*
+ * Copyright (c) 2003 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * This file is used as an example to clarify zzip api usage.
+ */
+
+extern int rezzip_make(int argc, char** argv);
+
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/zziptest.c b/Build/source/libs/zziplib/zziplib-src/bins/zziptest.c
new file mode 100644
index 00000000000..417e46405e6
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/zziptest.c
@@ -0,0 +1,159 @@
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ * Tomi Ollila <Tomi.Ollila@iki.fi>
+ *
+ * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim
+ * All rights reserved,
+ * use under the restrictions of the
+ * Lesser GNU General Public License
+ * or alternatively the restrictions
+ * of the Mozilla Public License 1.1
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <zzip/lib.h>
+
+#if defined ZZIP_HAVE_WINDOWS_H
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#define sleep Sleep
+#endif
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h> /* sleep */
+#endif
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+#if __GNUC__+0 >= 3 && __GNUC_MINOR__+0 >= 3
+# ifdef DEBUG
+# warning suppress a warning where the compiler should have optimized instead.
+# endif
+#define I_(_T,_L,_R) do { _T _l = (_T) _L; \
+ _l _R; _L = (typeof(_L)) _l; } while(0)
+#else
+#define I_(_T,_L,_R) _L _R
+#endif
+
+int main(int argc, char ** argv)
+{
+ ZZIP_DIR * dir;
+ const char * name = "test.zip";
+ zzip_error_t rv;
+ int i;
+ int quick = 0;
+
+ if (argc > 1 && argv[1] != NULL)
+ {
+ if (! strcmp (argv[1], "--help")) {
+ printf ("zziptest [testfile]\n - selftest defaults to 'test.zip'");
+ return 0;
+ }else if (! strcmp (argv[1], "--version")) {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return 0;
+ }else if (! strcmp (argv[1], "--quick")) {
+ quick = 1;
+ name = argv[2];
+ argv++; argc--;
+ argv++; argc--;
+ }else{
+ name = argv[1];
+ argv++; argc--;
+ }
+ }
+
+ printf("Opening zip file `%s'... ", name);
+ { int fd = open (name, O_RDONLY|O_BINARY);
+ if (fd == -1) { perror ("could not open input file"); return 0; }
+ if (! (dir = zzip_dir_fdopen(fd, &rv)))
+ {
+ printf("error %d.\n", rv);
+ return 0;
+ }
+ } printf("OK.\n");
+
+#if 1
+ printf("{check...\n");
+ { struct zzip_dir_hdr * hdr = dir->hdr0;
+
+ if (hdr == NULL)
+ { printf ("could not find first header in dir_hdr"); }
+ else
+ {
+ while (1)
+ {
+ printf("\ncompression method: %d", hdr->d_compr);
+ if (hdr->d_compr == 0) printf(" (stored)");
+ else if (hdr->d_compr == 8) printf(" (deflated)");
+ else printf(" (unknown)");
+ printf("\ncrc32: %x\n", hdr->d_crc32);
+ printf("compressed size: %d\n", hdr->d_csize);
+ printf("uncompressed size: %d\n", hdr->d_usize);
+ printf("offset of file in archive: %d\n", hdr->d_off);
+ printf("filename: %s\n\n", hdr->d_name);
+
+ if (hdr->d_reclen == 0) break;
+ I_(char *, hdr, += hdr->d_reclen);
+ if (! quick) sleep(1);
+ }
+ }
+ } printf ("\n}\n");
+#endif
+#if 1
+ { printf("{contents...\n");
+ for (i = 0; i < 2; i++)
+ {
+ ZZIP_DIRENT* d;
+
+ while((d=zzip_readdir(dir)))
+ {
+ printf(" name \"%s\", compr %d, size %d, ratio %2d\n",
+ d->d_name, d->d_compr, d->st_size,
+ 100 - (d->d_csize|1)*100/(d->st_size|1));
+ }
+ printf(" %d. time ---------------\n", i + 1);
+ zzip_rewinddir(dir);
+ }
+ printf("}...OK\n");
+ }
+#endif
+
+ { ZZIP_FILE * fp;
+ char buf[17];
+ const char * name = argv[1]? argv[1]: "README";
+
+
+ printf("Opening file `%s' in zip archive... ", name);
+ fp = zzip_file_open(dir, (char *)name, ZZIP_CASEINSENSITIVE);
+
+ if (! fp)
+ { printf("error %d: %s\n", zzip_error(dir), zzip_strerror_of(dir)); }
+ else
+ {
+ printf("OK.\n");
+ printf("Contents of the file:\n");
+
+ while (0 < (i = zzip_file_read(fp, buf, 16)))
+ {
+ buf[i] = '\0';
+ /*printf("\n*** read %d ***\n", i); fflush(stdout); */
+ printf("%s", buf);
+ /*write(1, buf, i);*/ /* Windows does not have write !!! */
+ }
+ if (i < 0) printf("error %d\n", zzip_error(dir));
+ }
+ }
+
+ return 0;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/zzobfuscated.c b/Build/source/libs/zziplib/zziplib-src/bins/zzobfuscated.c
new file mode 100644
index 00000000000..dd63b8a6618
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/zzobfuscated.c
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2002 Mike Nordell
+ * portions Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB License
+ *
+ * A small example that displays how the plugin I/O functions can be used
+ * to read "encrypted" zip archives.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <zzip/zzip.h>
+#include <zzip/plugin.h>
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+#if defined ZZIP_HAVE_UNISTD_H
+#include <unistd.h> /* read */
+#elif defined ZZIP_HAVE_IO_H
+#include <io.h> /* win32 */
+#else
+#endif
+
+#ifdef _MSC_VER
+#define _MSC_VER_NULL NULL
+#else
+#define _MSC_VER_NULL
+#endif
+
+/*
+ * Only override our the read handler. Let the system take care
+ * the rest.
+ */
+
+static zzip_ssize_t our_read(int fd, void* buf, zzip_size_t len)
+{
+ const zzip_ssize_t bytes = read(fd, buf, len);
+ zzip_ssize_t i;
+ char* pch = (char*)buf;
+ for (i=0; i<bytes; ++i) {
+ pch[i] ^= 0x55;
+ }
+ return bytes;
+}
+
+static zzip_plugin_io_handlers our_handlers = { _MSC_VER_NULL };
+static const char* const our_fileext [] = { ".dat", ".sav", 0 };
+
+
+static const char usage[] =
+{
+ " zzobfuscated <file> [in-zip filename]\n"
+ " - Demonstrates the use of installable file I/O handlers.\n"
+ " Copies <file> to \"obfuscated[.dat]\" while \"encrypting\" it by xor'ing\n"
+ " every byte with 0x55, installs file I/O handlers, and then uses the\n"
+ " zzip_open_ext_io function to read and print the file to stdout.\n"
+ " The file can be a normal file or an inflated part of a zip-archive,\n"
+ " to get 'README' from test.zip you may write \n"
+ " zzobfuscated test.zip README \n"
+};
+
+int
+main (int argc, char* argv[])
+{
+ if (argc <= 1 || argc > 3 || ! strcmp (argv[1], "--help"))
+ {
+ printf (usage);
+ return 0;
+ }
+ if (! strcmp (argv[1], "--version"))
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return 0;
+ }
+
+ if (strlen(argv[1]) > 128) {
+ fprintf(stderr, "Please provide a filename shorter than 128 chars.\n");
+ exit(1);
+ }
+
+ /* obfuscate the file */
+ {
+ int ch;
+ FILE* fin;
+ FILE* fout;
+ fin = fopen(argv[1], "rb");
+ if (!fin) {
+ fprintf(stderr, "Can't open input file \"%s\"\n", argv[1]);
+ exit(1);
+ }
+ fout = fopen((argc == 2) ? "obfuscated" : "obfuscated.dat", "wb");
+ if (!fout) {
+ fprintf(stderr, "Can't open output file \"obfuscated\"\n");
+ exit(1);
+ }
+ while ((ch = fgetc(fin)) != EOF) {
+ ch ^= 0x55;
+ fputc(ch, fout);
+ }
+ fclose(fout);
+ fclose(fin);
+ }
+
+ /* install our I/O hander */
+ zzip_init_io(&our_handlers, 0);
+ our_handlers.fd.read = &our_read;
+
+ {
+# define argn 2
+ ZZIP_FILE* fp;
+ char name[256];
+ if (argc == 3) {
+ sprintf(name, "obfuscated/%s", argv[argn]);
+ } else {
+ sprintf(name, "obfuscated");
+ }
+ fp = zzip_open_ext_io (name, O_RDONLY|O_BINARY, ZZIP_PREFERZIP,
+ our_fileext, &our_handlers);
+
+ if (! fp)
+ {
+ perror (name);
+ exit(1);
+ }else{
+ char buf[17];
+ int n;
+
+ /* read chunks of 16 bytes into buf and print them to stdout */
+ while (0 < (n = zzip_read(fp, buf, 16)))
+ {
+ buf[n] = '\0';
+# ifdef STDOUT_FILENO
+ write (STDOUT_FILENO, buf, n);
+# else
+ fwrite (buf, 1, n, stdout);
+# endif
+ }
+
+ if (n == -1)
+ perror (argv[argn]);
+ }
+ }
+
+ return 0;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/zzxorcat.c b/Build/source/libs/zziplib/zziplib-src/bins/zzxorcat.c
new file mode 100644
index 00000000000..3bf2d37dc96
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/zzxorcat.c
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB License
+ *
+ * show zip-reading with xor-obfuscation.
+ * Note that the difference to the standard zzcat.c is quite small.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <zzip/zzip.h>
+#include <zzip/plugin.h>
+
+#if defined ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#elif defined ZZIP_HAVE_IO_H
+#include <io.h>
+#else
+#error need posix io for this example
+#endif
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+static const char usage[] =
+{
+ " zzxorcat [-#] <file>... \n"
+ " - prints the file to stdout, so you may want to redirect the output; \n"
+ " the file is part of an inflated zip-archive obfuscated with xor value,\n"
+ " given by the numeric option (default is 0x55). \n"
+ " to get 'README' from dist.dat you may write \n"
+ " zzcat dist/README \n"
+};
+
+static int xor_value;
+
+static zzip_ssize_t xor_read (int f, void* p, zzip_size_t l)
+{
+ zzip_ssize_t r = read(f, p, l);
+ zzip_ssize_t x; char* q; for (x=0, q=p; x < r; x++) q[x] ^= xor_value;
+ return r;
+}
+
+static zzip_plugin_io_handlers xor_handlers;
+static zzip_strings_t xor_fileext[] = { ".dat", "", 0 };
+
+int
+main (int argc, char ** argv)
+{
+ int argn;
+ xor_value = 0x55;
+
+ if (argc <= 1 || ! strcmp (argv[1], "--help"))
+ {
+ printf (usage);
+ return 0;
+ }
+ if (! strcmp (argv[1], "--version"))
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return 0;
+ }
+
+ zzip_init_io (&xor_handlers, 0); xor_handlers.fd.read = &xor_read;
+
+ for (argn=1; argn < argc; argn++)
+ {
+ ZZIP_FILE* fp;
+
+ if (argv[argn][0] == '-')
+ {
+ if (isdigit(argv[argn][1])) xor_value = atoi (argv[argn]+1);
+ continue;
+ }
+
+ fp = zzip_open_ext_io (argv[argn], O_RDONLY|O_BINARY,
+ ZZIP_CASELESS|ZZIP_ONLYZIP,
+ xor_fileext, &xor_handlers);
+ if (! fp)
+ {
+ perror (argv[argn]);
+ continue;
+ }else{
+ char buf[17];
+ zzip_ssize_t n;
+
+ /* read chunks of 16 bytes into buf and print them to stdout */
+ while (0 < (n = zzip_read(fp, buf, 16)))
+ {
+ buf[n] = '\0';
+# ifdef STDOUT_FILENO
+ write (STDOUT_FILENO, buf, n);
+# else
+ fwrite (buf, 1, n, stdout);
+# endif
+ }
+
+ if (n == -1)
+ perror (argv[n]);
+ }
+ }
+
+ return 0;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/zzxorcopy.c b/Build/source/libs/zziplib/zziplib-src/bins/zzxorcopy.c
new file mode 100644
index 00000000000..7962efc1168
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/zzxorcopy.c
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB License
+ *
+ * show a simple program to add xor-obfuscation.
+ * look at the resulting file with zzxordir an zzxorcat
+ * Remember that xor'ing data twice will result in the original data.
+ * This file has no dependency with zziplib - it's freestanding.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#include <zzip/_config.h> /* for ZZIP_PACKAGE_VERSION */
+
+#if __STDC_VERSION__+0 < 199901
+#define _ssize_t int
+#define _size_t unsigned
+#else
+#define _ssize_t ssize_t
+#define _size_t size_t
+#endif
+
+static const char usage[] =
+{
+ " zzxopy [-#] <input-file> <output-file> \n"
+ " copies data from input-file to output-file adding simple \n"
+ " obfuscation by xor-ing each byte with the numeric value given. \n"
+ " the default xor-value is 0x55. Remember that copying data twice \n"
+ " with the same xor-value will result in the original file data. \n"
+};
+
+static int xor_value;
+
+static _ssize_t xor_read (FILE* f, void* p, _size_t l)
+{
+ _ssize_t r = fread(p, 1, l, f);
+ _ssize_t x; char* q; for (x=0, q=p; x < r; x++) q[x] ^= xor_value;
+ return r;
+}
+
+int
+main (int argc, char ** argv)
+{
+ int argn;
+ xor_value = 0x55;
+
+ if (argc <= 1 || ! strcmp (argv[1], "--help"))
+ {
+ printf (usage);
+ return 0;
+ }
+ if (! strcmp (argv[1], "--version"))
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return 0;
+ }
+
+ for (argn=1; argn < argc; argn++)
+ {
+ FILE* iF = 0;
+ FILE* oF = 0;
+
+ if (argv[argn][0] == '-')
+ {
+ if (isdigit(argv[argn][1])) xor_value = atoi (argv[argn]+1);
+ continue;
+ }
+
+ if (argn + 1 >= argc)
+ {
+ printf (usage);
+ exit (1);
+ }
+
+ iF = fopen (argv[argn], "rb");
+ if (! iF) { perror (argv[argn]); exit (2); }
+ argn++;
+ oF = fopen (argv[argn], "wb");
+ if (! oF) { perror (argv[argn]); fclose(iF); exit (3); }
+
+ {
+ char buf[17];
+ _ssize_t n;
+
+ /* read chunks of 16 bytes into buf and print them to stdout */
+ while (0 < (n = xor_read(iF, buf, 16)))
+ {
+ buf[n] = '\0';
+ n = fwrite (buf, 1, n, oF);
+ if (n < 0) break;
+ }
+
+ if (n < 0 && ferror (iF))
+ perror (argv[argn]);
+ }
+ }
+
+ return 0;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/zzxordir.c b/Build/source/libs/zziplib/zziplib-src/bins/zzxordir.c
new file mode 100644
index 00000000000..8a3781462b0
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/bins/zzxordir.c
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * show zip-reading with xor-obfuscation.
+ * Note that the difference to the standard zzdir.c is quite small.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#include <zzip/zzip.h>
+#include <zzip/plugin.h>
+
+#if defined ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#elif defined ZZIP_HAVE_IO_H
+#include <io.h>
+#else
+#error need posix io for this example
+#endif
+
+static const char usage[] =
+{
+ "zzdir <dir>.. \n"
+ " - prints a content table to stdout, but the dir can also be a zip-arch."
+ "\n"
+ " the file is part of an inflated zip-archive obfuscated with xor value,\n"
+ " given by the numeric option (default is 0x55). \n"
+ "\n"
+ " To show the contents of a zip-archive named 'test.zip', you may write \n"
+ " zzdir test \n"
+};
+
+static int xor_value;
+
+static zzip_ssize_t xor_read (int f, void* p, zzip_size_t l)
+{
+ zzip_ssize_t r = read(f, p, l);
+ zzip_ssize_t x; char* q; for (x=0, q=p; x < r; x++) q[x] ^= xor_value;
+ return r;
+}
+
+static zzip_plugin_io_handlers xor_handlers = { };
+static zzip_strings_t xor_fileext[] = { ".dat", "", 0 };
+
+int
+main (int argc, char ** argv)
+{
+ int argn;
+ int exitcode = 0;
+ xor_value = 0x55;
+
+ if (argc <= 1 || ! strcmp (argv[1], "--help"))
+ {
+ printf (usage);
+ return 0;
+ }
+ if (! strcmp (argv[1], "--version"))
+ {
+ printf (__FILE__ " version " ZZIP_PACKAGE_NAME " " ZZIP_PACKAGE_VERSION "\n");
+ return 0;
+ }
+
+ zzip_init_io (&xor_handlers, 0); xor_handlers.fd.read = &xor_read;
+
+ for (argn=1; argn < argc; argn++)
+ {
+ ZZIP_DIR * dir;
+ ZZIP_DIRENT * d;
+
+ if (argv[argn][0] == '-')
+ {
+ if (isdigit(argv[argn][1])) xor_value = atoi (argv[argn]+1);
+ continue;
+ }
+
+ dir = zzip_opendir_ext_io(argv[argn],
+ ZZIP_ONLYZIP, xor_fileext, &xor_handlers);
+ if (! dir)
+ {
+ fprintf (stderr, "did not open %s: ", argv[argn]);
+ perror(argv[argn]);
+ exitcode++;
+ continue;
+ }
+
+ if (argc > 2) printf ("%s: \n", argv[argn]);
+
+ /* read each dir entry and show one line of info per file */
+ while ((d = zzip_readdir (dir)))
+ {
+ /* orignalsize / compression-type / compression-ratio / filename */
+ if (d->st_size > 999999)
+ {
+ printf ("%5dK %-9s %2d%% %s\n",
+ d->st_size>>10,
+ zzip_compr_str(d->d_compr),
+ 100 - (d->d_csize|1)/((d->st_size/100)|1),
+ d->d_name);
+ }else{
+ printf ("%6d %-9s %2d%% %s\n",
+ d->st_size,
+ zzip_compr_str(d->d_compr),
+ 100 - (d->d_csize|1)*100/(d->st_size|1),
+ d->d_name);
+ }
+ }
+
+ zzip_closedir(dir);
+ }
+
+ return exitcode;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/config.h.in b/Build/source/libs/zziplib/zziplib-src/config.h.in
new file mode 100644
index 00000000000..b267e8b165a
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/config.h.in
@@ -0,0 +1,194 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* Define if pointers to integers require aligned access */
+#undef HAVE_ALIGNED_ACCESS_REQUIRED
+
+/* Define to 1 if you have the <byteswap.h> header file. */
+#undef HAVE_BYTESWAP_H
+
+/* Define to 1 if you have the <direct.h> header file. */
+#undef HAVE_DIRECT_H
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_DIRENT_H
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <fnmatch.h> header file. */
+#undef HAVE_FNMATCH_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <io.h> header file. */
+#undef HAVE_IO_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strcasecmp' function. */
+#undef HAVE_STRCASECMP
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the `strndup' function. */
+#undef HAVE_STRNDUP
+
+/* Define to 1 if you have the `strnlen' function. */
+#undef HAVE_STRNLEN
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/int_types.h> header file. */
+#undef HAVE_SYS_INT_TYPES_H
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#undef HAVE_SYS_MMAN_H
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_NDIR_H
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the <winbase.h> header file. */
+#undef HAVE_WINBASE_H
+
+/* Define to 1 if you have the <windows.h> header file. */
+#undef HAVE_WINDOWS_H
+
+/* Define to 1 if you have the <winnt.h> header file. */
+#undef HAVE_WINNT_H
+
+/* Define to 1 if you have the <zlib.h> header file. */
+#undef HAVE_ZLIB_H
+
+/* whether the system defaults to 32bit off_t but can do 64bit when requested
+ */
+#undef LARGEFILE_SENSITIVE
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#undef LT_OBJDIR
+
+/* Define if debugging is disabled */
+#undef NDEBUG
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* The number of bytes in type int */
+#undef SIZEOF_INT
+
+/* The number of bytes in type int * */
+#undef SIZEOF_INT_P
+
+/* The number of bytes in type long */
+#undef SIZEOF_LONG
+
+/* The number of bytes in type short */
+#undef SIZEOF_SHORT
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+# undef WORDS_BIGENDIAN
+# endif
+#endif
+
+/* Enable large inode numbers on Mac OS X 10.5. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
+/* Define to `long long' if <sys/types.h> does not define. */
+#undef __int64
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef __cplusplus
+#undef inline
+#endif
+
+/* Define to `_zzip_off_t' if <sys/types.h> does not define. */
+#undef off64_t
+
+/* Define to `long int' if <sys/types.h> does not define. */
+#undef off_t
+
+/* Define to equivalent of C99 restrict keyword, or to nothing if this is not
+ supported. Do not define if restrict is supported directly. */
+#undef restrict
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef ssize_t
diff --git a/Build/source/libs/zziplib/zziplib-src/configure b/Build/source/libs/zziplib/zziplib-src/configure
new file mode 100755
index 00000000000..e04b95e74fa
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/configure
@@ -0,0 +1,19343 @@
+#! /bin/sh
+# From configure.ac Revision: 1.15 .
+# 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.
+#
+# Guido Draheim <guido@gmx.de> for ZZipLib.SF.net
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&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="zziplib.spec"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+CONFIG_FILES
+aclocaldir
+pkgconfigdir
+RESOLVES
+ZZIPLIB_LDFLAGS
+ZIPTESTS
+ASAN_CFLAGS
+ASAN_LIBS
+SDL_GENERATE
+SDL
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
+ZLIB_VERSION
+LARGEFILE_CFLAGS
+XMLTO
+MKZIP
+PYTHON
+PERL
+PAX_TAR_EXTRACT
+PAX_TAR_CREATE
+TAR
+GTAR
+GNUTAR
+PAX
+pkgconfig_libfile
+pkgconfig_libdir
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+VERSION_INFO
+RELEASE_INFO
+CPP
+LT_SYS_LIBRARY_PATH
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+MANIFEST_TOOL
+RANLIB
+ac_ct_AR
+AR
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+LIBTOOL
+OBJDUMP
+DLLTOOL
+AS
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+ZLIB_LDIR
+ZLIB_INCL
+THREAD_SAFE
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+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_thread_safe
+with_zlib
+enable_silent_rules
+enable_debug
+enable_dependency_tracking
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_aix_soname
+with_gnu_ld
+with_sysroot
+enable_libtool_lock
+enable_maintainer_mode
+enable_largefile
+with_largefile
+with_docdir
+with_debug
+with_lowstk
+enable_mmap
+enable_sdl
+with_asan
+with_defines
+enable_frame_pointer
+enable_enable_default_pkgconfigdir
+enable_enable_default_aclocaldir
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+LT_SYS_LIBRARY_PATH
+CPP
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR'
+
+
+# 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]
+ --target=TARGET configure for building compilers for TARGET [HOST]
+_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]
+ --disable-thread-safe disable thread-safe libtool option
+
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+ --enable-debug=[yes/info/profile/no]
+ compile with debugging
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
+ --enable-shared[=PKGS] build shared libraries [default=yes]
+ --enable-static[=PKGS] build static libraries [default=yes]
+ --enable-fast-install[=PKGS]
+ optimize for fast installation [default=yes]
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --enable-maintainer-mode
+ enable make rules and dependencies not useful (and
+ sometimes confusing) to the casual installer
+ --disable-largefile omit support for large files
+ --disable-mmap disable mmap usage
+
+ --enable-sdl enable SDL usage (if present)
+
+ --enable-frame-pointer enable callframe generation for debugging
+ --enable-default-pkgconfigdir(=PATH) override the libdir/pkgconfig default
+ --enable-default-aclocaldir(=PATH) override the datadir/aclocal default
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-zlib zlib prefix (e.g. '$HOME/software')
+
+ --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-aix-soname=aix|svr4|both
+ shared library versioning (aka "SONAME") variant to
+ provide on AIX, [default=aix].
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the
+ compiler's sysroot if not specified).
+ --with-largefile compile as off64_t instead of 32bit off_t
+
+ --with-docdir docdir prefix (prefix/share/doc)
+
+ --with-debug debug messages in library
+
+ --with-lowstk limited thread stack
+
+ --with-asan compile with adress sanitizer
+
+ --with-defines easy,harden,allow_modulo_entries
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ LT_SYS_LIBRARY_PATH
+ User-defined run-time library search path.
+ CPP C preprocessor
+ PKG_CONFIG path to pkg-config utility
+ PKG_CONFIG_PATH
+ directories to add to pkg-config's search path
+ PKG_CONFIG_LIBDIR
+ path overriding pkg-config's built-in search path
+
+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.
+
+Guido Draheim <guido@gmx.de> for ZZipLib.SF.net
+_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 <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+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
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ 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
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=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
+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_type
+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
+
+
+
+
+
+ac_aux_dir=
+for ac_dir in uses "$srcdir"/uses; 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 uses \"$srcdir\"/uses" "$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
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if ${ac_cv_target+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$target_alias" = x; then
+ ac_cv_target=$ac_cv_host
+else
+ ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+ # --------------------------------------------
+case "$prefix:$ac_default_prefix" in
+ NONE:/usr/local)
+ result=""
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking default prefix path" >&5
+$as_echo_n "checking default prefix path... " >&6; }
+ case "${target_os}" in
+ *cygwin* | *mingw* | *uwin* | *djgpp | *emx* )
+ if test "${host_os}" = "${target_os}" ; then
+ ac_default_prefix="/programs"
+ result="(win/dos target)"
+ else
+ case "$PATH" in
+ *:/usr/local/cross-tools/$target_alias/bin:*)
+ ac_default_prefix="/usr/local/cross-tools/$target_alias" ;;
+ *:/usr/local/$target_alias/bin:*)
+ ac_default_prefix="/usr/local/$target_alias" ;;
+ *:/usr/local/$target_cpu-$target_os/bin:*)
+ ac_default_prefix="/usr/local/$target_cpu-$target_os" ;;
+ *)
+ ac_default_prefix="/programs" ;;
+ esac
+ result="(win/dos cross-compiler)"
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_default_prefix $result" >&5
+$as_echo "$ac_default_prefix $result" >&6; }
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking default prefix system" >&5
+$as_echo_n "checking default prefix system... " >&6; }
+result="$prefix" ; test "$result" = "NONE" && result="$ac_default_prefix"
+case ${result} in
+ /programs | /programs/*) result="is win-/programs"
+ # on win/dos, .exe .dll and .cfg live in the same directory
+ libdir=`echo $libdir |sed -e 's:^..exec_prefix./lib$:${bindir}:'`
+ sbindir=`echo $sbindir |sed -e 's:^..exec_prefix./sbin$:${libdir}:'`
+ sysconfdir=`echo $sysconfdir |sed -e 's:^..prefix./etc$:${sbindir}:'`
+ libexecdir=`echo $libexecdir |sed -e 's:/libexec$:/system:'`
+ # help-files shall be set with --infodir, docprefix is datadir
+ docprefix="${datadir}"
+ mandir=`echo $mandir \
+ |sed -e 's:^..prefix./man$:${datadir}/info:'`
+ includedir=`echo $includedir \
+ |sed -e 's:^..prefix./include$:${datadir}/include:'`
+ # other state files (but /etc) are moved to datadir
+ sharedstatedir=`echo $sharedstatedir \
+ |sed -e 's:^..prefix./com$:${datadir}/default:'`
+ localstatedir=`echo $localstatedir \
+ |sed -e 's:^..prefix./var$:${datadir}/current:'`
+ ;;
+ /usr) result="is /usr-shipped"
+ # doc files are left at prefix
+ docprefix="${prefix}"
+ # state files go under /top
+ sysconfdir=`echo $sysconfdir |sed -e 's:^..prefix./etc$:/etc:'`
+ sharedstatedir=`echo $sharedstatedir \
+ |sed -e 's:^..prefix./com$:/etc/default:'`
+ # $prefix/var is going to end up in /var/lib
+ localstatedir=`echo $localstatedir \
+ |sed -e 's:^..prefix./var$:/var/lib:'`
+ ;;
+ /opt | /opt/*) result="is /opt-package"
+ # state files go under /top/prefix
+ sysconfdir=`echo $sysconfdir \
+ |sed -e 's:^..prefix./etc$:/etc${prefix}:'`
+ sharedstatedir=`echo $sharedstatedir \
+ |sed -e 's:^..prefix./com$:/etc/default${prefix}:'`
+ # $prefix/var is going to to be /var$prefix... once again
+ localstatedir=`echo $localstatedir \
+ |sed -e 's:^..prefix./var$:/var${prefix}:'`
+ # doc files are left at prefix
+ docprefix="${prefix}"
+ ;;
+ *) result="is /local-package"
+ # doc files are moved from prefix down to datadir
+ docprefix="${datadir}"
+ mandir=`echo $mandir \
+ |sed -e 's:^..prefix./man$:${datadir}/man:'`
+ infodir=`echo $infodir \
+ |sed -e 's:^..prefix./infodir$:${datadir}/info:'`
+ # never use $prefix/com - that is no good idea
+ sharedstatedir=`echo $sharedstatedir \
+ |sed -e 's:^..prefix./com$:${sysconfdir}/default:'`
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5
+$as_echo "$result" >&6; }
+# --------------------------------------------------------
+
+# -----------------------------------------------------------------------
+# Check whether --enable-thread-safe was given.
+if test "${enable_thread_safe+set}" = set; then :
+ enableval=$enable_thread_safe;
+else
+ enable_thread_safe="yes"
+fi
+
+THREAD_SAFE=""
+test "$enable_thread_safe" = "yes" && THREAD_SAFE="-thread-safe"
+test "$enable_thread_safe" = "$host_os" && THREAD_SAFE="-thread-safe"
+
+if test -n "$THREAD_SAFE" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...using thread-safe linkage" >&5
+$as_echo "...using thread-safe linkage" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled thread-safe linkage" >&5
+$as_echo "disabled thread-safe linkage" >&6; }
+fi
+# ----------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking zlib install prefix" >&5
+$as_echo_n "checking zlib install prefix... " >&6; }
+
+# Check whether --with-zlib was given.
+if test "${with_zlib+set}" = set; then :
+ withval=$with_zlib;
+else
+ with_zlib="no"
+fi
+
+if test "${with_zlib}" = yes ; then # choose --prefix paths
+ if test "${prefix}" = NONE ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops, but only itself..." >&5
+$as_echo "oops, but only itself..." >&6; }
+ as_fn_error $? "--with-zlib requires a path argument or a --prefix path set" "$LINENO" 5
+ fi
+ with_zlib="$prefix"
+fi
+
+case ".$with_zlib" in
+ .no|.no,*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+ with_zlib="no, not configured" ;;
+ ./usr)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops, ignored (may try --with-zlib=/usr/.)" >&5
+$as_echo "oops, ignored (may try --with-zlib=/usr/.)" >&6; }
+ with_zlib="no, /usr ignored" ;;
+ *) if test ! -d "$with_zlib/include" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops, given but..." >&5
+$as_echo "oops, given but..." >&6; }
+ as_fn_error $? "\"$with_zlib/include\" is not a directory" "$LINENO" 5
+ fi
+ if test ! -d "$with_zlib/lib" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops, given but..." >&5
+$as_echo "oops, given but..." >&6; }
+ as_fn_error $? "\"$with_zlib/lib\" is not a directory" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_zlib" >&5
+$as_echo "$with_zlib" >&6; }
+ ZLIB_INCL="-I$with_zlib/include"
+ ZLIB_LDIR="-L$with_zlib/lib"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding CPPFLAGS $ZLIB_INCL" >&5
+$as_echo "..adding CPPFLAGS $ZLIB_INCL" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding LDFLAGS $ZLIB_LDIR" >&5
+$as_echo "..adding LDFLAGS $ZLIB_LDIR" >&6; }
+ CPPFLAGS="$CPPFLAGS $ZLIB_INCL"
+ LDFLAGS="$LDFLAGS $ZLIB_LDIR"
+ ;;
+esac
+
+
+# -----------------------------------------------------------------------
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking rpm spec file" >&5
+$as_echo_n "checking rpm spec file... " >&6; }
+ if test "." != "." ; then
+ ax_spec_file_=""
+ ax_spec_file=`basename `
+ else
+ case ".$ac_unique_file" in
+ *.spec) ax_spec_file="$ac_unique_file"
+ ax_spec_file_="$ac_unique_file" ;;
+ *) ax_spec_file="TODO"
+ if test ".$PACKAGE" != "."
+ then ax_spec_file_="$PACKAGE.spec"
+ else ax_spec_file_="README"
+ fi
+ cat >&5 <<EOF
+ no ax_spec_file argument has been given, using defaults of
+ (1) $ax_spec_file_
+ (2) $ax_spec_file
+EOF
+ ;;
+ esac
+ fi
+ # find specfile
+ for i in . $srcdir $srcdir/.. .. ; do
+ if test -f "$i/$ax_spec_file_" ; then
+ ax_spec_dir="$i"
+ ax_spec_file="$ax_spec_dir/$ax_spec_file_"
+ break
+ fi
+ if test -f "$i/$ax_spec_file" ; then
+ ax_spec_dir="$i"
+ ax_spec_file="$ax_spec_dir/$ax_spec_file"
+ break
+ fi
+ done
+ case "$ax_spec_file" in
+ ./*) if test "$ax_spec_file" = "./$ax_spec_file_" ; then
+ ax_spec_file="$ax_spec_file_"
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_spec_file" >&5
+$as_echo "$ax_spec_file" >&6; } ;;
+ */*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_spec_file" >&5
+$as_echo "$ax_spec_file" >&6; } ;;
+ *) as_fn_error $? "no rpm spec file found" "$LINENO" 5 ;;
+ esac
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec package" >&5
+$as_echo_n "checking for spec package... " >&6; }
+ if test ".$PACKAGE_NAME" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+
+ if test ".$PACKAGE_NAME" = "." ; then
+ PACKAGE_NAME=`grep -i '^[ ]*name[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'`
+ if test ".$PACKAGE_NAME" = "." ; then
+ for PACKAGE_NAME in name PACKAGE_NAME package_name ; do
+ PACKAGE_NAME=`echo "$PACKAGE_NAME" | sed -e 's/^%//g'`
+ PACKAGE_NAME=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file`
+ test ".PACKAGE_NAME" != "." && break
+ done
+ fi
+ case ".$PACKAGE_NAME" in
+ .%{*)
+ PACKAGE_NAME=`echo "$PACKAGE_NAME" | sed -e 's/%{//' -e 's/}$//'`
+ PACKAGE_NAME=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ .%*)
+ PACKAGE_NAME=`echo "$PACKAGE_NAME" | sed -e 's/%//'`
+ PACKAGE_NAME=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_NAME[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ esac
+
+ fi # test ".$[]PACKAGE_NAME" = "."
+
+ PACKAGE_NAME=`echo $PACKAGE_NAME | sed -e 's/ /-/g'`
+ fi fi
+ test ".$PACKAGE_NAME" = "." && k="(fallback)"
+ test ".$PACKAGE_NAME" = "." && PACKAGE_NAME=`basename $ax_spec_file .spec`
+ test ".$PACKAGE_NAME" = ".README" && PACKAGE_NAME="TODO"
+ test ".$PACKAGE_NAME" = ".TODO" && PACKAGE_NAME="foo"
+
+ test "PACKAGE_NAME" = "PACKAGE_NAME" && test ".$PACKAGE" = "." && PACKAGE="$PACKAGE_NAME"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_NAME $k" >&5
+$as_echo "$PACKAGE_NAME $k" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec version" >&5
+$as_echo_n "checking for spec version... " >&6; }
+ if test ".$PACKAGE_VERSION" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+
+ if test ".$PACKAGE_VERSION" = "." ; then
+ PACKAGE_VERSION=`grep -i '^[ ]*version[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'`
+ if test ".$PACKAGE_VERSION" = "." ; then
+ for PACKAGE_VERSION in version PACKAGE_VERSION package_version ; do
+ PACKAGE_VERSION=`echo "$PACKAGE_VERSION" | sed -e 's/^%//g'`
+ PACKAGE_VERSION=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file`
+ test ".PACKAGE_VERSION" != "." && break
+ done
+ fi
+ case ".$PACKAGE_VERSION" in
+ .%{*)
+ PACKAGE_VERSION=`echo "$PACKAGE_VERSION" | sed -e 's/%{//' -e 's/}$//'`
+ PACKAGE_VERSION=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ .%*)
+ PACKAGE_VERSION=`echo "$PACKAGE_VERSION" | sed -e 's/%//'`
+ PACKAGE_VERSION=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_VERSION[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ esac
+
+ fi # test ".$[]PACKAGE_VERSION" = "."
+
+ PACKAGE_VERSION=`echo $PACKAGE_VERSION | sed -e 's/ /-/g'`
+ fi fi
+ test ".$PACKAGE_VERSION" = "." && k="(fallback)"
+ test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION=`date +0.%y.%W%w`
+
+ test "PACKAGE_VERSION" = "PACKAGE_VERSION" && test ".$VERSION" = "." && VERSION="$PACKAGE_VERSION"
+ case "$PACKAGE_VERSION" in # note we set traditional VERSION before cleaning things up
+ *.*.) PACKAGE_VERSION="$PACKAGE_VERSION"`date +%W%w` ;;
+ *.*.*) ;;
+ *.) PACKAGE_VERSION="$PACKAGE_VERSION"`date +%y.%W%w` ;;
+ *.*) PACKAGE_VERSION="$PACKAGE_VERSION.0" ;;
+ *) PACKAGE_VERSION=`$as_echo "$PACKAGE_VERSION" | $as_tr_sh` ; PACKAGE_VERSION="$PACKAGE_VERSION.`date +%y.%W%w`" ;;
+ esac
+ PACKAGE_VERSION=`echo $PACKAGE_VERSION | sed -e "s/[.]0\\(0-9\\)/.\\1/g"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_VERSION $k" >&5
+$as_echo "$PACKAGE_VERSION $k" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec license type" >&5
+$as_echo_n "checking for spec license type... " >&6; }
+ if test ".$PACKAGE_LICENSE" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+
+ if test ".$PACKAGE_LICENSE" = "." ; then
+ PACKAGE_LICENSE=`grep -i '^[ ]*license[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'`
+ if test ".$PACKAGE_LICENSE" = "." ; then
+ for PACKAGE_LICENSE in license PACKAGE_LICENSE package_license ; do
+ PACKAGE_LICENSE=`echo "$PACKAGE_LICENSE" | sed -e 's/^%//g'`
+ PACKAGE_LICENSE=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file`
+ test ".PACKAGE_LICENSE" != "." && break
+ done
+ fi
+ case ".$PACKAGE_LICENSE" in
+ .%{*)
+ PACKAGE_LICENSE=`echo "$PACKAGE_LICENSE" | sed -e 's/%{//' -e 's/}$//'`
+ PACKAGE_LICENSE=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ .%*)
+ PACKAGE_LICENSE=`echo "$PACKAGE_LICENSE" | sed -e 's/%//'`
+ PACKAGE_LICENSE=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_LICENSE[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ esac
+
+ fi # test ".$[]PACKAGE_LICENSE" = "."
+
+ PACKAGE_LICENSE=`echo $PACKAGE_LICENSE | sed -e 's/ *License//g'`
+ fi fi
+ test ".$PACKAGE_LICENSE" = "." && k="(fallback)"
+ if test ".$PACKAGE_LICENSE" = "." ; then
+ for ac_file in "$srcdir/COPYING" "$srcdir/COPYING" "$srcdir/LICENSE" ; do
+ test -f "$ac_file" || continue
+ if grep "GNU LESSER GENERAL PUBLIC LICENSE" "$ac_file" >/dev/null
+ then PACKAGE_LICENSE="GNU LGPL" ; break
+ elif grep "GNU GENERAL PUBLIC LICENSE" "$ac_file" >/dev/null
+ then PACKAGE_LICENSE="GNU GPL" ; break
+ elif grep "MOZILLA PUBLIC LICENSE" "$ac_file" >/dev/null
+ then PACKAGE_LICENSE="MPL" ; break
+ elif grep "Mozilla Public License" "$ac_file" >/dev/null
+ then PACKAGE_LICENSE="MPL" ; break
+ elif grep -i "artistic license" "$ac_file" >/dev/null
+ then PACKAGE_LICENSE="Artistic" ; break
+ elif grep -i "artistic control" "$ac_file" >/dev/null
+ then PACKAGE_LICENSE="Artistic" ; break
+ elif grep -i "semblance of artistic" "$ac_file" >/dev/null
+ then PACKAGE_LICENSE="Artistic" ; break
+ elif grep -i "above copyright notice" "$ac_file" >/dev/null
+ then PACKAGE_LICENSE="BSD" ; break
+ fi
+ done
+ if test ".$PACKAGE_LICENSE" = "." ; then
+ if test "$srcdir/COPYING.LIB" ; then PACKAGE_LICENSE="GNU LGPL"
+ elif test ".$ltmain" != "." ; then PACKAGE_LICENSE="GNU LGPL"
+ else PACKAGE_LICENSE="GNU GPL"
+ fi
+ fi
+ fi
+
+ test "$PACKAGE_LICENSE" = "GPL" && PACKAGE_LICENSE="GNU GPL"
+ test "$PACKAGE_LICENSE" = "LGPL" && PACKAGE_LICENSE="GNU LGPL"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_LICENSE $k" >&5
+$as_echo "$PACKAGE_LICENSE $k" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec summary" >&5
+$as_echo_n "checking for spec summary... " >&6; }
+ if test ".$PACKAGE_SUMMARY" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+
+ if test ".$PACKAGE_SUMMARY" = "." ; then
+ PACKAGE_SUMMARY=`grep -i '^[ ]*summary[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'`
+ if test ".$PACKAGE_SUMMARY" = "." ; then
+ for PACKAGE_SUMMARY in summary PACKAGE_SUMMARY package_summary ; do
+ PACKAGE_SUMMARY=`echo "$PACKAGE_SUMMARY" | sed -e 's/^%//g'`
+ PACKAGE_SUMMARY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file`
+ test ".PACKAGE_SUMMARY" != "." && break
+ done
+ fi
+ case ".$PACKAGE_SUMMARY" in
+ .%{*)
+ PACKAGE_SUMMARY=`echo "$PACKAGE_SUMMARY" | sed -e 's/%{//' -e 's/}$//'`
+ PACKAGE_SUMMARY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ .%*)
+ PACKAGE_SUMMARY=`echo "$PACKAGE_SUMMARY" | sed -e 's/%//'`
+ PACKAGE_SUMMARY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_SUMMARY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ esac
+
+ fi # test ".$[]PACKAGE_SUMMARY" = "."
+
+ fi fi
+ test ".$PACKAGE_SUMMARY" = "." && k="(fallback)"
+ if test ".$PACKAGE_SUMMARY" = "." ; then PACKAGE_SUMMARY="$PACKAGE"
+ test ".$PACKAGE_SUMMARY" = "." && PACKAGE_SUMMARY="foo"
+ test ".$ltmain" != "." && PACKAGE_SUMMARY="$PACKAGE_SUMMARY library"
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_SUMMARY $k" >&5
+$as_echo "$PACKAGE_SUMMARY $k" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec category" >&5
+$as_echo_n "checking for spec category... " >&6; }
+ if test ".$PACKAGE_CATEGORY" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+
+ if test ".$PACKAGE_CATEGORY" = "." ; then
+ PACKAGE_CATEGORY=`grep -i '^[ ]*group[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'`
+ if test ".$PACKAGE_CATEGORY" = "." ; then
+ for PACKAGE_CATEGORY in group PACKAGE_CATEGORY package_category ; do
+ PACKAGE_CATEGORY=`echo "$PACKAGE_CATEGORY" | sed -e 's/^%//g'`
+ PACKAGE_CATEGORY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file`
+ test ".PACKAGE_CATEGORY" != "." && break
+ done
+ fi
+ case ".$PACKAGE_CATEGORY" in
+ .%{*)
+ PACKAGE_CATEGORY=`echo "$PACKAGE_CATEGORY" | sed -e 's/%{//' -e 's/}$//'`
+ PACKAGE_CATEGORY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ .%*)
+ PACKAGE_CATEGORY=`echo "$PACKAGE_CATEGORY" | sed -e 's/%//'`
+ PACKAGE_CATEGORY=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_CATEGORY[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ esac
+
+ fi # test ".$[]PACKAGE_CATEGORY" = "."
+
+ PACKAGE_CATEGORY=`echo $PACKAGE_CATEGORY | sed -e 's/ /-/g'`
+ fi fi
+ test ".$PACKAGE_CATEGORY" = "." && k="(fallback)"
+ if test ".$PACKAGE_CATEGORY" = "." ; then if test ".$ltmain" != "."
+ then PACKAGE_CATEGORY="Development/Library"
+ else PACKAGE_CATEGORY="Development/Other"
+ fi fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_CATEGORY $k" >&5
+$as_echo "$PACKAGE_CATEGORY $k" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for spec icon" >&5
+$as_echo_n "checking for spec icon... " >&6; }
+ if test ".$PACKAGE_ICON" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+
+ if test ".$PACKAGE_ICON" = "." ; then
+ PACKAGE_ICON=`grep -i '^[ ]*icon[ ]*:' "$ax_spec_file" | sed -e 's/.*:[ ]*//' -e 's/[ ][ ]*/ /g' -e 's/^ //' -e 's/ $//' -e 'q'`
+ if test ".$PACKAGE_ICON" = "." ; then
+ for PACKAGE_ICON in icon PACKAGE_ICON package_icon ; do
+ PACKAGE_ICON=`echo "$PACKAGE_ICON" | sed -e 's/^%//g'`
+ PACKAGE_ICON=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file`
+ test ".PACKAGE_ICON" != "." && break
+ done
+ fi
+ case ".$PACKAGE_ICON" in
+ .%{*)
+ PACKAGE_ICON=`echo "$PACKAGE_ICON" | sed -e 's/%{//' -e 's/}$//'`
+ PACKAGE_ICON=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ .%*)
+ PACKAGE_ICON=`echo "$PACKAGE_ICON" | sed -e 's/%//'`
+ PACKAGE_ICON=`sed -e "/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]/!d" -e "s/^%[ ]*define[ ][ ]*$PACKAGE_ICON[ ]*//" -e 's/[ ][ ]*/ /' -e 's/ $//' -e 'q' $ax_spec_file` ;;
+ esac
+
+ fi # test ".$[]PACKAGE_ICON" = "."
+
+ fi fi
+ test ".$PACKAGE_ICON" = "." && k="(fallback)"
+ if test ".$PACKAGE_ICON" = "." ; then PACKAGE_ICON="$PACKAGE-icon.png" ; fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_ICON $k" >&5
+$as_echo "$PACKAGE_ICON $k" >&6; }
+
+
+am__api_version='1.15'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+
+ PACKAGE=$PACKAGE
+ 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:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+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: <http://www.gnu.org/software/coreutils/>.
+
+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
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable debugging" >&5
+$as_echo_n "checking whether to enable debugging... " >&6; }
+
+ ax_enable_debug_default=no
+ ax_enable_debug_is_release=$ax_is_release
+
+ # If this is a release, override the default.
+ if test "$ax_enable_debug_is_release" = "yes"; then :
+ ax_enable_debug_default="no"
+fi
+
+
+
+
+ # Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then :
+ enableval=$enable_debug;
+else
+ enable_debug=$ax_enable_debug_default
+fi
+
+
+ # empty mean debug yes
+ if test "x$enable_debug" = "x"; then :
+ enable_debug="yes"
+fi
+
+ # case of debug
+ case $enable_debug in #(
+ yes) :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ CFLAGS="${CFLAGS} -g -O0"
+ CXXFLAGS="${CXXFLAGS} -g -O0"
+ FFLAGS="${FFLAGS} -g -O0"
+ FCFLAGS="${FCFLAGS} -g -O0"
+ OBJCFLAGS="${OBJCFLAGS} -g -O0"
+ ;; #(
+ info) :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: info" >&5
+$as_echo "info" >&6; }
+ CFLAGS="${CFLAGS} -g"
+ CXXFLAGS="${CXXFLAGS} -g"
+ FFLAGS="${FFLAGS} -g"
+ FCFLAGS="${FCFLAGS} -g"
+ OBJCFLAGS="${OBJCFLAGS} -g"
+ ;; #(
+ profile) :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: profile" >&5
+$as_echo "profile" >&6; }
+ CFLAGS="${CFLAGS} -g -pg"
+ CXXFLAGS="${CXXFLAGS} -g -pg"
+ FFLAGS="${FFLAGS} -g -pg"
+ FCFLAGS="${FCFLAGS} -g -pg"
+ OBJCFLAGS="${OBJCFLAGS} -g -pg"
+ LDFLAGS="${LDFLAGS} -pg"
+ ;; #(
+ *) :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ if test "x${CFLAGS+set}" != "xset"; then :
+ CFLAGS=""
+fi
+ if test "x${CXXFLAGS+set}" != "xset"; then :
+ CXXFLAGS=""
+fi
+ if test "x${FFLAGS+set}" != "xset"; then :
+ FFLAGS=""
+fi
+ if test "x${FCFLAGS+set}" != "xset"; then :
+ FCFLAGS=""
+fi
+ if test "x${OBJCFLAGS+set}" != "xset"; then :
+ OBJCFLAGS=""
+fi
+ ;;
+esac
+
+ if test "x$enable_debug" = "xyes"; then :
+
+else
+
+$as_echo "#define NDEBUG /**/" >>confdefs.h
+
+fi
+ ax_enable_debug=$enable_debug
+
+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 <stdio.h>
+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 <stdarg.h>
+#include <stdio.h>
+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
+
+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
+
+
+
+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
+
+
+
+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
+
+
+
+
+
+
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.4.6'
+macro_revision='2.4.6'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO ""
+}
+
+case $ECHO in
+ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi
+fi
+
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&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 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in dumpbin "link -dump"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in dumpbin "link -dump"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test yes != "$GCC"; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test yes = "$GCC"; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd* | bitrig*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
+else
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh;
+ # decide which one to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd=$ECHO
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in ar
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AR" && break
+ done
+fi
+if test -z "$AR"; then
+ ac_ct_AR=$AR
+ for ac_prog in ar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_AR" && break
+done
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+fi
+
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ar_at_file=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -eq "$ac_status"; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -ne "$ac_status"; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test no = "$lt_cv_ar_at_file"; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test ia64 = "$host_cpu"; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Gets list of data symbols to import.
+ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+ # Adjust the below global symbol transforms to fixup imported variables.
+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
+ lt_c_name_lib_hook="\
+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
+else
+ # Disable hooks by default.
+ lt_cv_sys_global_symbol_to_import=
+ lt_cdecl_hook=
+ lt_c_name_hook=
+ lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function,
+ # D for any global variable and I for any imported variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS=conftstm.$ac_objext
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test yes = "$pipe_works"; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+ withval=$with_sysroot;
+else
+ with_sysroot=no
+fi
+
+
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+ ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+ ac_path_lt_DD_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in dd; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+ $ac_path_lt_DD_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_lt_DD"; then
+ :
+ fi
+else
+ ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in $*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out what ABI is being produced by ac_compile, and set mode
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE=32
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE=64
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+mips64*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ emul=elf
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ emul="${emul}32"
+ ;;
+ *64-bit*)
+ emul="${emul}64"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *MSB*)
+ emul="${emul}btsmip"
+ ;;
+ *LSB*)
+ emul="${emul}ltsmip"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *N32*)
+ emul="${emul}n32"
+ ;;
+ esac
+ LD="${LD-ld} -m $emul"
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly. Note that the listed cases only cover the
+ # situations where additional linker options are needed (such as when
+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+ # vice versa); the common cases where no linker options are needed do
+ # not appear in the list.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test yes != "$lt_cv_cc_needs_belf"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS=$SAVE_CFLAGS
+ fi
+ ;;
+*-*solaris*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*)
+ case $host in
+ i?86-*-solaris*|x86_64-*-solaris*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ sparc*-*-solaris*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+ LD=${LD-ld}_sol2
+ fi
+ ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks=$enable_libtool_lock
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$MANIFEST_TOOL"; then
+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+ # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_MANIFEST_TOOL"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_MANIFEST_TOOL" = x; then
+ MANIFEST_TOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+ fi
+else
+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&5
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test yes != "$lt_cv_path_mainfest_tool"; then
+ MANIFEST_TOOL=:
+fi
+
+
+
+
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "$LT_MULTI_MODULE"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&5
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
+ echo "$RANLIB libconftest.a" >&5
+ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&5
+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ 10.[012][,.]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test yes = "$lt_cv_apple_cc_single_mod"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test yes = "$lt_cv_ld_exported_symbols_list"; then
+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+ fi
+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x$2 in
+ x)
+ ;;
+ *:)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+ ;;
+ x:*)
+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+ ;;
+ *)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> 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 <limits.h>
+#else
+# include <assert.h>
+#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 <ac_nonexistent.h>
+_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 <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> 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 <limits.h>
+#else
+# include <assert.h>
+#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 <ac_nonexistent.h>
+_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 <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+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 <string.h>
+
+_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 <stdlib.h>
+
+_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 <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+# Set options
+
+
+
+ enable_dlopen=no
+
+
+
+ # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ # Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ pic_mode=default
+fi
+
+
+
+
+
+
+
+
+ # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+ shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+
+# Check whether --with-aix-soname was given.
+if test "${with_aix_soname+set}" = set; then :
+ withval=$with_aix_soname; case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname
+else
+ if ${lt_cv_with_aix_soname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_with_aix_soname=aix
+fi
+
+ with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/${ac_tool_prefix}file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC=$CC
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test yes = "$GCC"; then
+ case $cc_basename in
+ nvcc*)
+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+ *)
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+
+ if test yes = "$GCC"; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ lt_prog_compiler_wl='-Xlinker '
+ if test -n "$lt_prog_compiler_pic"; then
+ lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+ fi
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ case $cc_basename in
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='$wl-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ # old Intel for x86_64, which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ *Sun\ F* | *Sun*Fortran*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Qoption ld '
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Intel*\ [CF]*Compiler*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ *Portland\ Group*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms that do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_static_works"; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test no = "$hard_links"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ' (' and ')$', so one must not match beginning or
+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+ # as well as any symbol that contains 'd'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test yes != "$GCC"; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test yes = "$with_gnu_ld"; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test yes = "$lt_use_gnu_ld_interface"; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='$wl'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ export_dynamic_flag_spec='$wl--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test ia64 != "$host_cpu"; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ export_dynamic_flag_spec='$wl--export-all-symbols'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ haiku*)
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ link_all_deplibs=yes
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test linux-dietlibc = "$host_os"; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test no = "$tmp_diet"
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ tcc*)
+ export_dynamic_flag_spec='-rdynamic'
+ ;;
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test no = "$ld_shlibs"; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ ;;
+ esac
+
+ if test yes = "$GCC"; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag="$shared_flag "'$wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ export_dynamic_flag_spec='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' $wl-bernotok'
+ allow_undefined_flag=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ fi
+ archive_cmds_need_lc=yes
+ archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl*)
+ # Native MSVC
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ file_list_spec='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+ enable_shared_with_static_runtimes=yes
+ exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ old_postinstall_cmds='chmod 644 $oldlib'
+ postlink_cmds='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ enable_shared_with_static_runtimes=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ if test yes = "$lt_cv_ld_force_load"; then
+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+ else
+ whole_archive_flag_spec=''
+ fi
+ link_all_deplibs=yes
+ allow_undefined_flag=$_lt_dar_allow_undefined
+ case $cc_basename in
+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test yes = "$_lt_dar_can_shared"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+ archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test yes = "$GCC"; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='$wl-E'
+ ;;
+
+ hpux10*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler__b=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -b"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler__b=yes
+ fi
+ else
+ lt_cv_prog_compiler__b=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test yes = "$lt_cv_prog_compiler__b"; then
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+ ;;
+ esac
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo (void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_irix_exported_symbol=yes
+else
+ lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ ld_shlibs=yes
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ else
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ osf3*)
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test yes = "$GCC"; then
+ wlarc='$wl'
+ archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='$wl'
+ archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'. GCC discards it without '$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test yes = "$GCC"; then
+ whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test sequent = "$host_vendor"; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='$wl-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='$wl-z,text'
+ allow_undefined_flag='$wl-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test sni = "$host_vendor"; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='$wl-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test no = "$ld_shlibs" && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test yes,yes = "$GCC,$enable_shared"; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test yes = "$GCC"; then
+ case $host_os in
+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+ *) lt_awk_arg='/^libraries:/' ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+ *) lt_sed_strip_eq='s|=/|/|g' ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary...
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ # ...but if some path component already ends with the multilib dir we assume
+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+ case "$lt_multi_os_dir; $lt_search_path_spec " in
+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+ lt_multi_os_dir=
+ ;;
+ esac
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+ elif test -n "$lt_multi_os_dir"; then
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+ lt_foo = "";
+ lt_count = 0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo = "/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+
+
+case $host_os in
+aix3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 supports IA64
+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line '#! .'. This would cause the generated library to
+ # depend on '.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a(lib.so.V)'
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='$libname$shared_ext'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ library_names_spec='$libname.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec=$LIB
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[23].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+haiku*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ if test 32 = "$HPUX_IA64_MODE"; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+ fi
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[3-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+linux*android*)
+ version_type=none # Android doesn't support versioned libraries.
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext'
+ soname_spec='$libname$release$shared_ext'
+ finish_cmds=
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ dynamic_linker='Android linker'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd* | bitrig*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec=/usr/lib
+ need_lib_prefix=no
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ need_version=no
+ else
+ need_version=yes
+ fi
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+os2*)
+ libname_spec='$name'
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test yes = "$with_gnu_ld"; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+ soname_spec='$libname$shared_ext.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=sco
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test yes = "$with_gnu_ld"; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test yes = "$hardcode_automatic"; then
+
+ # We can hardcode non-existent directories.
+ if test no != "$hardcode_direct" &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+ test no != "$hardcode_minus_L"; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test relink = "$hardcode_action" ||
+ test yes = "$inherit_rpath"; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+ test no = "$enable_shared"; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+ lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+ lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP"; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report what library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION="$VERSION"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking out linker version info $PACKAGE_VERSION " >&5
+$as_echo_n "checking out linker version info $PACKAGE_VERSION ... " >&6; }
+ MINOR_VERSION=`echo $PACKAGE_VERSION`
+ MAJOR_VERSION=`echo "$MINOR_VERSION" | sed -e 's/[.].*//'`
+ MINOR_VERSION=`echo "$MINOR_VERSION" | sed -e "s/^$MAJOR_VERSION//" -e 's/^.//'`
+ MICRO_VERSION="$MINOR_VERSION"
+ MINOR_VERSION=`echo "$MICRO_VERSION" | sed -e 's/[.].*//'`
+ MICRO_VERSION=`echo "$MICRO_VERSION" | sed -e "s/^$MINOR_VERSION//" -e 's/^.//'`
+ PATCH_VERSION="$MICRO_VERSION"
+ MICRO_VERSION=`echo "$PATCH_VERSION" | sed -e 's/[^0-9].*//'`
+ PATCH_VERSION=`echo "$PATCH_VERSION" | sed -e "s/^$MICRO_VERSION//" -e 's/[-.]//'`
+ if test "_$MICRO_VERSION" = "_" ; then MICRO_VERSION="0" ; fi
+ if test "_$MINOR_VERSION" = "_" ; then MINOR_VERSION="$MAJOR_VERSION" ; MAJOR_VERSION="0" ; fi
+ MINOR_VERSION=`echo "$MINOR_VERSION" | sed -e 's/[^0-9].*//'`
+ RELEASE_INFO="-release $MAJOR_VERSION"
+ VERSION_INFO="-version-info $MINOR_VERSION:$MICRO_VERSION"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: /$MAJOR_VERSION/$MINOR_VERSION:$MICRO_VERSION (-$MAJOR_VERSION.so.$MINOR_VERSION.0.$MICRO_VERSION)" >&5
+$as_echo "/$MAJOR_VERSION/$MINOR_VERSION:$MICRO_VERSION (-$MAJOR_VERSION.so.$MINOR_VERSION.0.$MICRO_VERSION)" >&6; }
+
+
+
+
+# -----------------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: creating zzip/_msvc.in via zzip/_msvc.sed of config.h.in" >&5
+$as_echo "creating zzip/_msvc.in via zzip/_msvc.sed of config.h.in" >&6; }
+test -d zzip || mkdir zzip
+sed -f $srcdir/zzip/_msvc.sed $srcdir/config.h.in >zzip/_msvc.in
+ac_config_headers="$ac_config_headers config.h"
+
+ ac_config_commands="$ac_config_commands zzip/_config.h"
+
+ ac_config_commands="$ac_config_commands zzip/_msvc.h"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+
+# we need the expanded forms...
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig libname" >&5
+$as_echo_n "checking our pkgconfig libname... " >&6; }
+test ".$ax_create_pkgconfig_libname" != "." || \
+ax_create_pkgconfig_libname="`basename zzip/zziplib.pc .pc`"
+test ".$ax_create_pkgconfig_libname" != "." || \
+ax_create_pkgconfig_libname="$PACKAGE"
+ax_create_pkgconfig_libname=`eval echo "$ax_create_pkgconfig_libname"`
+ax_create_pkgconfig_libname=`eval echo "$ax_create_pkgconfig_libname"`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_libname" >&5
+$as_echo "$ax_create_pkgconfig_libname" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig version" >&5
+$as_echo_n "checking our pkgconfig version... " >&6; }
+test ".$ax_create_pkgconfig_version" != "." || \
+ax_create_pkgconfig_version="${PACKAGE_VERSION}"
+test ".$ax_create_pkgconfig_version" != "." || \
+ax_create_pkgconfig_version="$VERSION"
+ax_create_pkgconfig_version=`eval echo "$ax_create_pkgconfig_version"`
+ax_create_pkgconfig_version=`eval echo "$ax_create_pkgconfig_version"`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_version" >&5
+$as_echo "$ax_create_pkgconfig_version" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig_libdir" >&5
+$as_echo_n "checking our pkgconfig_libdir... " >&6; }
+test ".$pkgconfig_libdir" = "." && \
+pkgconfig_libdir='${libdir}/pkgconfig'
+ax_create_pkgconfig_libdir=`eval echo "$pkgconfig_libdir"`
+ax_create_pkgconfig_libdir=`eval echo "$ax_create_pkgconfig_libdir"`
+ax_create_pkgconfig_libdir=`eval echo "$ax_create_pkgconfig_libdir"`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkgconfig_libdir" >&5
+$as_echo "$pkgconfig_libdir" >&6; }
+test "$pkgconfig_libdir" != "$ax_create_pkgconfig_libdir" && (
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: expanded our pkgconfig_libdir... $ax_create_pkgconfig_libdir" >&5
+$as_echo "expanded our pkgconfig_libdir... $ax_create_pkgconfig_libdir" >&6; })
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig_libfile" >&5
+$as_echo_n "checking our pkgconfig_libfile... " >&6; }
+test ".$pkgconfig_libfile" != "." || \
+pkgconfig_libfile="`basename zzip/zziplib.pc`"
+ax_create_pkgconfig_libfile=`eval echo "$pkgconfig_libfile"`
+ax_create_pkgconfig_libfile=`eval echo "$ax_create_pkgconfig_libfile"`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkgconfig_libfile" >&5
+$as_echo "$pkgconfig_libfile" >&6; }
+test "$pkgconfig_libfile" != "$ax_create_pkgconfig_libfile" && (
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: expanded our pkgconfig_libfile... $ax_create_pkgconfig_libfile" >&5
+$as_echo "expanded our pkgconfig_libfile... $ax_create_pkgconfig_libfile" >&6; })
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our package / suffix" >&5
+$as_echo_n "checking our package / suffix... " >&6; }
+ax_create_pkgconfig_suffix="$program_suffix"
+test ".$ax_create_pkgconfig_suffix" != .NONE || ax_create_pkgconfig_suffix=""
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${PACKAGE_NAME} / ${ax_create_pkgconfig_suffix}" >&5
+$as_echo "${PACKAGE_NAME} / ${ax_create_pkgconfig_suffix}" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig description" >&5
+$as_echo_n "checking our pkgconfig description... " >&6; }
+ax_create_pkgconfig_description="$PACKAGE_SUMMARY"
+test ".$ax_create_pkgconfig_description" != "." || \
+ax_create_pkgconfig_description="$ax_create_pkgconfig_libname Library"
+ax_create_pkgconfig_description=`eval echo "$ax_create_pkgconfig_description"`
+ax_create_pkgconfig_description=`eval echo "$ax_create_pkgconfig_description"`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_description" >&5
+$as_echo "$ax_create_pkgconfig_description" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig requires" >&5
+$as_echo_n "checking our pkgconfig requires... " >&6; }
+ax_create_pkgconfig_requires="zzip-zlib-config"
+ax_create_pkgconfig_requires=`eval echo "$ax_create_pkgconfig_requires"`
+ax_create_pkgconfig_requires=`eval echo "$ax_create_pkgconfig_requires"`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_requires" >&5
+$as_echo "$ax_create_pkgconfig_requires" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig ext libs" >&5
+$as_echo_n "checking our pkgconfig ext libs... " >&6; }
+ax_create_pkgconfig_pkglibs="$PACKAGE_LIBS"
+test ".$ax_create_pkgconfig_pkglibs" != "." || ax_create_pkgconfig_pkglibs="-l$ax_create_pkgconfig_libname"
+ax_create_pkgconfig_libs="-lzzip"
+ax_create_pkgconfig_libs=`eval echo "$ax_create_pkgconfig_libs"`
+ax_create_pkgconfig_libs=`eval echo "$ax_create_pkgconfig_libs"`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_libs" >&5
+$as_echo "$ax_create_pkgconfig_libs" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig cppflags" >&5
+$as_echo_n "checking our pkgconfig cppflags... " >&6; }
+ax_create_pkgconfig_cppflags="$CPPFLAGS $PACKAGE_CFLAGS"
+ax_create_pkgconfig_cppflags=`eval echo "$ax_create_pkgconfig_cppflags"`
+ax_create_pkgconfig_cppflags=`eval echo "$ax_create_pkgconfig_cppflags"`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_cppflags" >&5
+$as_echo "$ax_create_pkgconfig_cppflags" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig ldflags" >&5
+$as_echo_n "checking our pkgconfig ldflags... " >&6; }
+ax_create_pkgconfig_ldflags="$LDFLAGS $PACKAGE_LDFLAGS"
+ax_create_pkgconfig_ldflags=`eval echo "$ax_create_pkgconfig_ldflags"`
+ax_create_pkgconfig_ldflags=`eval echo "$ax_create_pkgconfig_ldflags"`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_ldflags" >&5
+$as_echo "$ax_create_pkgconfig_ldflags" >&6; }
+
+test ".$ax_create_pkgconfig_generate" != "." || \
+ax_create_pkgconfig_generate="zzip/zziplib.pc"
+ax_create_pkgconfig_generate=`eval echo "$ax_create_pkgconfig_generate"`
+ax_create_pkgconfig_generate=`eval echo "$ax_create_pkgconfig_generate"`
+test "$pkgconfig_libfile" != "$ax_create_pkgconfig_generate" && (
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: generate the pkgconfig later... $ax_create_pkgconfig_generate" >&5
+$as_echo "generate the pkgconfig later... $ax_create_pkgconfig_generate" >&6; })
+
+if test ".$ax_create_pkgconfig_src_libdir" = "." ; then
+ax_create_pkgconfig_src_libdir=`pwd`
+ax_create_pkgconfig_src_libdir=`$as_dirname -- "$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" ||
+$as_expr X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(//\)[^/]' \| \
+ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(//\)$' \| \
+ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+test ! -d $ax_create_pkgconfig_src_libdir/src || \
+ax_create_pkgconfig_src_libdir="$ax_create_pkgconfig_src_libdir/src"
+case ".$objdir" in
+*libs) ax_create_pkgconfig_src_libdir="$ax_create_pkgconfig_src_libdir/$objdir" ;; esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: noninstalled pkgconfig -L $ax_create_pkgconfig_src_libdir" >&5
+$as_echo "noninstalled pkgconfig -L $ax_create_pkgconfig_src_libdir" >&6; }
+fi
+
+if test ".$ax_create_pkgconfig_src_headers" = "." ; then
+ax_create_pkgconfig_src_headers=`pwd`
+v="$ac_top_srcdir" ;
+test ".$v" != "." || v="$ax_spec_dir"
+test ".$v" != "." || v="$srcdir"
+case "$v" in /*) ax_create_pkgconfig_src_headers="" ;; esac
+ax_create_pkgconfig_src_headers=`$as_dirname -- "$ax_create_pkgconfig_src_headers/$v/x" ||
+$as_expr X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(//\)[^/]' \| \
+ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(//\)$' \| \
+ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ax_create_pkgconfig_src_headers/$v/x" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+test ! -d $ax_create_pkgconfig_src_headers/include || \
+ax_create_pkgconfig_src_headers="$ax_create_pkgconfig_src_headers/include"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: noninstalled pkgconfig -I $ax_create_pkgconfig_src_headers" >&5
+$as_echo "noninstalled pkgconfig -I $ax_create_pkgconfig_src_headers" >&6; }
+fi
+
+
+ac_config_commands="$ac_config_commands $ax_create_pkgconfig_generate"
+
+# -----------------------------------------------------------------------
+
+
+if test -z "$ac_cv_pax_tar_tool"; then
+ # Extract the first word of "pax", so it can be a program name with args.
+set dummy pax; 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_PAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PAX in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PAX="$PAX" # 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_PAX="$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_PAX" && ac_cv_path_PAX=":"
+ ;;
+esac
+fi
+PAX=$ac_cv_path_PAX
+if test -n "$PAX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PAX" >&5
+$as_echo "$PAX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "$ac_cv_path_PAX" != ":"; then
+ ac_cv_pax_tar_tool="pax"
+ else #3
+ # Extract the first word of "gnutar", so it can be a program name with args.
+set dummy gnutar; 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_GNUTAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GNUTAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GNUTAR="$GNUTAR" # 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_GNUTAR="$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_GNUTAR" && ac_cv_path_GNUTAR=":"
+ ;;
+esac
+fi
+GNUTAR=$ac_cv_path_GNUTAR
+if test -n "$GNUTAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GNUTAR" >&5
+$as_echo "$GNUTAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "$ac_cv_path_GNUTAR" != ":"; then
+ ac_cv_pax_tar_tool="gnutar"
+ else #1
+ # Extract the first word of "gtar", so it can be a program name with args.
+set dummy gtar; 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_GTAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GTAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GTAR="$GTAR" # 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_GTAR="$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_GTAR" && ac_cv_path_GTAR=":"
+ ;;
+esac
+fi
+GTAR=$ac_cv_path_GTAR
+if test -n "$GTAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTAR" >&5
+$as_echo "$GTAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "$ac_cv_path_GTAR" != ":"; then
+ ac_cv_pax_tar_tool="gtar"
+ else #2
+ # Extract the first word of "tar", so it can be a program name with args.
+set dummy tar; 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_TAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAR="$TAR" # 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_TAR="$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_TAR" && ac_cv_path_TAR=":"
+ ;;
+esac
+fi
+TAR=$ac_cv_path_TAR
+if test -n "$TAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5
+$as_echo "$TAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "$ac_cv_path_TAR" != ":"; then
+ ac_cv_pax_tar_tool="tar"
+ fi
+ fi fi fi #3 #2 #1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for portable tar tool" >&5
+$as_echo_n "checking for portable tar tool... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pax_tar_tool" >&5
+$as_echo "$ac_cv_pax_tar_tool" >&6; }
+fi
+
+
+ if test "$ac_cv_pax_tar_tool$ax_pax_single_archive" = "pax"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pax single archive option" >&5
+$as_echo_n "checking for pax single archive option... " >&6; }
+ echo foo > conftest.txt ; rm -f conftest.tar
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \"\$ac_cv_path_PAX\" -w -O -f conftest.tar conftest.txt"; } >&5
+ ("$ac_cv_path_PAX" -w -O -f conftest.tar conftest.txt) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test -s conftest.tar; then
+ ax_pax_single_archive="-O" ; ac_hint="(probably a BSD pax)"
+ else
+ ax_pax_single_archive=" " ; ac_hint="(the -O option did not work)"
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pax_single_archive $ac_hint" >&5
+$as_echo "$ax_pax_single_archive $ac_hint" >&6; }
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for command to create portable tar archives" >&5
+$as_echo_n "checking for command to create portable tar archives... " >&6; }
+ if test "$ac_cv_pax_tar_tool" = "gnutar"; then
+ ax_pax_tar_create="'$ac_cv_path_GNUTAR' cf"
+ elif test "$ac_cv_pax_tar_tool" = "gtar"; then
+ ax_pax_tar_create="'$ac_cv_path_GTAR' cf"
+ elif test "$ac_cv_pax_tar_tool" = "pax"; then
+ ax_pax_tar_create="'$ac_cv_path_PAX' -w $ax_pax_single_archive -f"
+ elif test "$ac_cv_pax_tar_tool" = "tar"; then
+ ax_pax_tar_create="'$ac_cv_path_TAR' cf"
+ else
+ ax_pax_tar_create=": 'unknown pax tar tool $ac_cv_pax_tar_tool'"
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pax_tar_create" >&5
+$as_echo "$ax_pax_tar_create" >&6; }
+
+PAX_TAR_CREATE="$ax_pax_tar_create"
+
+
+
+
+
+if test -z "$ac_cv_pax_tar_tool"; then
+ # Extract the first word of "pax", so it can be a program name with args.
+set dummy pax; 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_PAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PAX in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PAX="$PAX" # 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_PAX="$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_PAX" && ac_cv_path_PAX=":"
+ ;;
+esac
+fi
+PAX=$ac_cv_path_PAX
+if test -n "$PAX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PAX" >&5
+$as_echo "$PAX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "$ac_cv_path_PAX" != ":"; then
+ ac_cv_pax_tar_tool="pax"
+ else #3
+ # Extract the first word of "gnutar", so it can be a program name with args.
+set dummy gnutar; 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_GNUTAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GNUTAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GNUTAR="$GNUTAR" # 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_GNUTAR="$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_GNUTAR" && ac_cv_path_GNUTAR=":"
+ ;;
+esac
+fi
+GNUTAR=$ac_cv_path_GNUTAR
+if test -n "$GNUTAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GNUTAR" >&5
+$as_echo "$GNUTAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "$ac_cv_path_GNUTAR" != ":"; then
+ ac_cv_pax_tar_tool="gnutar"
+ else #1
+ # Extract the first word of "gtar", so it can be a program name with args.
+set dummy gtar; 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_GTAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GTAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GTAR="$GTAR" # 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_GTAR="$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_GTAR" && ac_cv_path_GTAR=":"
+ ;;
+esac
+fi
+GTAR=$ac_cv_path_GTAR
+if test -n "$GTAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTAR" >&5
+$as_echo "$GTAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "$ac_cv_path_GTAR" != ":"; then
+ ac_cv_pax_tar_tool="gtar"
+ else #2
+ # Extract the first word of "tar", so it can be a program name with args.
+set dummy tar; 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_TAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAR="$TAR" # 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_TAR="$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_TAR" && ac_cv_path_TAR=":"
+ ;;
+esac
+fi
+TAR=$ac_cv_path_TAR
+if test -n "$TAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5
+$as_echo "$TAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "$ac_cv_path_TAR" != ":"; then
+ ac_cv_pax_tar_tool="tar"
+ fi
+ fi fi fi #3 #2 #1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for portable tar tool" >&5
+$as_echo_n "checking for portable tar tool... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pax_tar_tool" >&5
+$as_echo "$ac_cv_pax_tar_tool" >&6; }
+fi
+
+
+ if test "$ac_cv_pax_tar_tool$ax_pax_single_archive" = "pax"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pax single archive option" >&5
+$as_echo_n "checking for pax single archive option... " >&6; }
+ echo foo > conftest.txt ; rm -f conftest.tar
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \"\$ac_cv_path_PAX\" -w -O -f conftest.tar conftest.txt"; } >&5
+ ("$ac_cv_path_PAX" -w -O -f conftest.tar conftest.txt) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test -s conftest.tar; then
+ ax_pax_single_archive="-O" ; ac_hint="(probably a BSD pax)"
+ else
+ ax_pax_single_archive=" " ; ac_hint="(the -O option did not work)"
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pax_single_archive $ac_hint" >&5
+$as_echo "$ax_pax_single_archive $ac_hint" >&6; }
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for command to extract portable tar archives" >&5
+$as_echo_n "checking for command to extract portable tar archives... " >&6; }
+ if test "$ac_cv_pax_tar_tool" = "gnutar"; then
+ ax_pax_tar_extract="'$ac_cv_path_GNUTAR' xf"
+ elif test "$ac_cv_pax_tar_tool" = "gtar"; then
+ ax_pax_tar_extract="'$ac_cv_path_GTAR' xf"
+ elif test "$ac_cv_pax_tar_tool" = "pax"; then
+ ax_pax_tar_extract="'$ac_cv_path_PAX' -r $ax_pax_single_archive -f"
+ elif test "$ac_cv_pax_tar_tool" = "tar"; then
+ ax_pax_tar_extract="'$ac_cv_path_TAR' xf"
+ else
+ ax_pax_tar_extract=": 'unknown pax tar tool $ac_cv_pax_tar_tool'"
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pax_tar_extract" >&5
+$as_echo "$ax_pax_tar_extract" >&6; }
+
+PAX_TAR_EXTRACT="$ax_pax_tar_extract"
+
+
+
+for ac_prog in perl5 perl
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PERL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # 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_PERL="$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
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$PERL" && break
+done
+test -n "$PERL" || PERL="echo no perl found for"
+
+for ac_prog in python3
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PYTHON+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PYTHON in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PYTHON="$PYTHON" # 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_PYTHON="$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
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$PYTHON" && break
+done
+test -n "$PYTHON" || PYTHON="echo no python found for"
+
+for ac_prog in zip pkzip
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MKZIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MKZIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MKZIP="$MKZIP" # 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_MKZIP="$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
+MKZIP=$ac_cv_path_MKZIP
+if test -n "$MKZIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKZIP" >&5
+$as_echo "$MKZIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$MKZIP" && break
+done
+test -n "$MKZIP" || MKZIP=":"
+
+for ac_prog in xmlto
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XMLTO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XMLTO in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XMLTO="$XMLTO" # 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_XMLTO="$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
+XMLTO=$ac_cv_path_XMLTO
+if test -n "$XMLTO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLTO" >&5
+$as_echo "$XMLTO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$XMLTO" && break
+done
+test -n "$XMLTO" || XMLTO=":"
+
+
+{ $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 for an ANSI C-conforming const" >&5
+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+if ${ac_cv_c_const+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this sort of thing. */
+ typedef int charset[2];
+ const charset cs = { 0, 0 };
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *pcpcc;
+ char **ppc;
+ /* NEC SVR4.0.2 mips cc rejects this. */
+ struct point {int x, y;};
+ static struct point const zero = {0,0};
+ /* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in
+ an arm of an if-expression whose if-part is not a constant
+ expression */
+ const char *g = "string";
+ pcpcc = &g + (g ? g-g : 0);
+ /* HPUX 7.0 cc rejects these. */
+ ++pcpcc;
+ ppc = (char**) pcpcc;
+ pcpcc = (char const *const *) ppc;
+ { /* SCO 3.2v4 cc rejects this sort of thing. */
+ char tx;
+ char *t = &tx;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+ if (s) return 0;
+ }
+ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+ }
+ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+ }
+ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; } bx;
+ struct s *b = &bx; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+ if (!foo) return 0;
+ }
+ return !cs[0] && !zero.x;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_const=yes
+else
+ ac_cv_c_const=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+$as_echo "$ac_cv_c_const" >&6; }
+if test $ac_cv_c_const = no; then
+
+$as_echo "#define const /**/" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C restrict keyword" >&5
+$as_echo_n "checking for C restrict keyword... " >&6; }
+if ${acx_cv_c_restrict+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ acx_cv_c_restrict=unsupported
+
+ 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
+
+ # Try the official restrict keyword, then gcc's __restrict__, then
+ # SGI's __restrict. __restrict has slightly different semantics than
+ # restrict (it's a bit stronger, in that __restrict pointers can't
+ # overlap even with non __restrict pointers), but I think it should be
+ # okay under the circumstances where restrict is normally used.
+ for acx_kw in restrict __restrict__ __restrict; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+float * $acx_kw x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ acx_cv_c_restrict=$acx_kw; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+ 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: $acx_cv_c_restrict" >&5
+$as_echo "$acx_cv_c_restrict" >&6; }
+ if test "$acx_cv_c_restrict" != "restrict"; then
+ acx_kw="$acx_cv_c_restrict"
+ if test "$acx_kw" = unsupported; then acx_kw=""; fi
+
+cat >>confdefs.h <<_ACEOF
+#define restrict $acx_kw
+_ACEOF
+
+ fi
+
+{ $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 <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+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 <string.h>
+
+_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 <stdlib.h>
+
+_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 <ctype.h>
+#include <stdlib.h>
+#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
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+fi
+
+for ac_header in stdint.h unistd.h windows.h winnt.h winbase.h sys/int_types.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in sys/types.h sys/mman.h sys/stat.h sys/param.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+ for ac_header in io.h direct.h zlib.h byteswap.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in fnmatch.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default"
+if test "x$ac_cv_header_fnmatch_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_FNMATCH_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_func in strcasecmp strnlen strndup
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
+if test "x$ac_cv_type_off_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define off_t long int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
+if test "x$ac_cv_type_ssize_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define ssize_t int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "off64_t" "ac_cv_type_off64_t" "$ac_includes_default"
+if test "x$ac_cv_type_off64_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define off64_t _zzip_off_t
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "__int64" "ac_cv_type___int64" "$ac_includes_default"
+if test "x$ac_cv_type___int64" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define __int64 long long
+_ACEOF
+
+fi
+
+if test "xno" = "x$ac_cv_header_stdint_h" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
+$as_echo_n "checking size of short... " >&6; }
+if ${ac_cv_sizeof_short+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include "confdefs.h"
+#include <sys/types.h>
+
+
+int
+main ()
+{
+switch (0) case 0: case (sizeof (short) == $ac_size):;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sizeof_short=$ac_size
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test x$ac_cv_sizeof_short != x ; then break; fi
+done
+
+fi
+
+if test x$ac_cv_sizeof_short = x ; then
+ as_fn_error $? "cannot determine a size for short" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
+$as_echo "$ac_cv_sizeof_short" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SHORT $ac_cv_sizeof_short
+_ACEOF
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+$as_echo_n "checking size of int... " >&6; }
+if ${ac_cv_sizeof_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include "confdefs.h"
+#include <sys/types.h>
+
+
+int
+main ()
+{
+switch (0) case 0: case (sizeof (int) == $ac_size):;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sizeof_int=$ac_size
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test x$ac_cv_sizeof_int != x ; then break; fi
+done
+
+fi
+
+if test x$ac_cv_sizeof_int = x ; then
+ as_fn_error $? "cannot determine a size for int" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+$as_echo "$ac_cv_sizeof_int" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+$as_echo_n "checking size of long... " >&6; }
+if ${ac_cv_sizeof_long+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include "confdefs.h"
+#include <sys/types.h>
+
+
+int
+main ()
+{
+switch (0) case 0: case (sizeof (long) == $ac_size):;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sizeof_long=$ac_size
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test x$ac_cv_sizeof_long != x ; then break; fi
+done
+
+fi
+
+if test x$ac_cv_sizeof_long = x ; then
+ as_fn_error $? "cannot determine a size for long" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+$as_echo "$ac_cv_sizeof_long" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int *" >&5
+$as_echo_n "checking size of int *... " >&6; }
+if ${ac_cv_sizeof_int_p+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include "confdefs.h"
+#include <sys/types.h>
+
+
+int
+main ()
+{
+switch (0) case 0: case (sizeof (int *) == $ac_size):;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sizeof_int_p=$ac_size
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test x$ac_cv_sizeof_int_p != x ; then break; fi
+done
+
+fi
+
+if test x$ac_cv_sizeof_int_p = x ; then
+ as_fn_error $? "cannot determine a size for int *" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_p" >&5
+$as_echo "$ac_cv_sizeof_int_p" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT_P $ac_cv_sizeof_int_p
+_ACEOF
+
+
+fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if ${ac_cv_c_bigendian+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then :
+ # Try to guess by grepping values from an object file.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_bigendian=no
+else
+ ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+ yes)
+ $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+ no)
+ ;; #(
+ universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+ ;; #(
+ *)
+ as_fn_error $? "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if pointers to integers require aligned access" >&5
+$as_echo_n "checking if pointers to integers require aligned access... " >&6; }
+if ${ax_cv_have_aligned_access_required+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = "yes"; then
+ case "$host_cpu" in alpha*|arm*|bfin*|hp*|mips*|sh*|sparc*|ia64|nv1)
+ ax_cv_have_aligned_access_required="yes"
+ ;; esac
+else
+ if test "$cross_compiling" = yes; then :
+ ax_cv_have_aligned_access_required=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+int main()
+{
+ char* string = malloc(40);
+ int i;
+ for (i=0; i < 40; i++) string[[i]] = i;
+ {
+ void* s = string;
+ int* p = s+1;
+ int* q = s+2;
+
+ if (*p == *q) { return 1; }
+ }
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ax_cv_have_aligned_access_required=yes
+else
+ ax_cv_have_aligned_access_required=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_aligned_access_required" >&5
+$as_echo "$ax_cv_have_aligned_access_required" >&6; }
+fi
+if test "$ax_cv_have_aligned_access_required" = yes ; then
+
+$as_echo "#define HAVE_ALIGNED_ACCESS_REQUIRED 1" >>confdefs.h
+
+fi
+
+# the default is _disabled_!! anyway, result is prefixed in zzip/_config.h!!
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if ${ac_cv_sys_file_offset_bits+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if ${ac_cv_sys_large_files+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ fi
+
+
+fi
+
+# we know about some internals of ac_sys_largefile here...
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system differentiates 64bit off_t by defines" >&5
+$as_echo_n "checking whether system differentiates 64bit off_t by defines... " >&6; }
+ac_cv_sys_largefile_sensitive="no"
+if test ".${ac_cv_sys_file_offset_bits-no}${ac_cv_sys_large_files-no}" != ".nono"
+then ac_cv_sys_largefile_sensitive="yes"
+
+$as_echo "#define LARGEFILE_SENSITIVE 1" >>confdefs.h
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_sensitive" >&5
+$as_echo "$ac_cv_sys_largefile_sensitive" >&6; }
+
+test ".$LARGEFILE_CFLAGS" = "." && LARGEFILE_CFLAGS=""
+
+# Check whether --with-largefile was given.
+if test "${with_largefile+set}" = set; then :
+ withval=$with_largefile;
+else
+ with_largefile="no"
+fi
+
+if test ".$ac_cv_sys_largefile_sensitive" = ".no" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: compiles library with the only off_t seen" >&5
+$as_echo "compiles library with the only off_t seen" >&6; }
+elif test ".$with_largefile" != ".no" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: compiles library as 64bit off_t variant - and renaming some function names" >&5
+$as_echo "compiles library as 64bit off_t variant - and renaming some function names" >&6; }
+ LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGEFILE_SOURCE"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding CFLAGS $LARGEFILE_CFLAGS" >&5
+$as_echo "..adding CFLAGS $LARGEFILE_CFLAGS" >&6; }
+ CFLAGS="$CFLAGS $LARGEFILE_CFLAGS"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding 64 into RELEASE_INFO for the libraries" >&5
+$as_echo "..adding 64 into RELEASE_INFO for the libraries" >&6; }
+ RELEASE_INFO="$RELEASE_INFO-64"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: compiles library as 32bit off_t variant - largefile is not the default here" >&5
+$as_echo "compiles library as 32bit off_t variant - largefile is not the default here" >&6; }
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib being found" >&5
+$as_echo_n "checking for zlib being found... " >&6; }
+if test "_$ac_cv_header_zlib_h" != "_yes" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...oops: zlib.h not found - try adding some CPPFLAGS to configure call" >&5
+$as_echo "...oops: zlib.h not found - try adding some CPPFLAGS to configure call" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: and when linkage fails you might also need to set some LDFLAGS" >&5
+$as_echo "...note: and when linkage fails you might also need to set some LDFLAGS" >&6; }
+ case "$prefix" in
+ NONE|/usr)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: both can be set by specifying the install prefix of the zlib library" >&5
+$as_echo "...note: both can be set by specifying the install prefix of the zlib library" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: via --with-zlib=path ... it will test for -Ipath/include -Lpath/lib" >&5
+$as_echo "...note: via --with-zlib=path ... it will test for -Ipath/include -Lpath/lib" >&6; }
+ ;;
+ *) if test -d $prefix/include ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: -I$prefix/include is not added to CPPFLAGS automatically and" >&5
+$as_echo "...note: -I$prefix/include is not added to CPPFLAGS automatically and" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: neither is -L$prefix/lib for LDFLAGS .. both will be if you specify" >&5
+$as_echo "...note: neither is -L$prefix/lib for LDFLAGS .. both will be if you specify" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...note: --with-zlib to configure call" >&5
+$as_echo "...note: --with-zlib to configure call" >&6; }
+ fi
+ ;;
+ esac
+ as_fn_error $? "zlib.h not found: \"zlib\" is required to build \"$PACKAGE\"" "$LINENO" 5
+ exit 1
+fi
+cat >conftest.c <<EOF
+#include <zlib.h>
+const char* zlib_VeRsIoN = ZLIB_VERSION "dEtEcT";
+EOF
+ZLIB_VERSION=`(eval "$ac_cpp conftest.c") 2>/dev/null \
+| grep zlib_VeRsIoN | sed -e 's,.*= *.,,' -e 's,. *.dEtEcT.*,,'`
+rm conftest.c
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes - $ZLIB_VERSION" >&5
+$as_echo "yes - $ZLIB_VERSION" >&6; }
+# ----------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking docdir default" >&5
+$as_echo_n "checking docdir default... " >&6; }
+
+# Check whether --with-docdir was given.
+if test "${with_docdir+set}" = set; then :
+ withval=$with_docdir;
+else
+ with_docdir="no"
+fi
+
+case "${with_docdir}" in
+ prefix/*) docdir=` echo "$withval" | sed 's/^prefix/${prefix}'` ;;
+ datadir/*) docdir=` echo "$withval" | sed 's/^datadir/${datadir}'` ;;
+ yes) docdir='${prefix}/doc' ;;
+ no) docdir='${datadir}/doc' ;;
+ /*|\\*|a-zA-Z:*) docdir="$with_docdir" ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops" >&5
+$as_echo "oops" >&6; }
+ as_fn_error $? "bad value ${withval} for --with-docdir" "$LINENO" 5
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $docdir" >&5
+$as_echo "$docdir" >&6; }
+# ----------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether using debugging messages in libraries" >&5
+$as_echo_n "checking whether using debugging messages in libraries... " >&6; }
+
+# Check whether --with-debug was given.
+if test "${with_debug+set}" = set; then :
+ withval=$with_debug; case "${withval}" in
+ yes|no) with_debug="$withval" ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops" >&5
+$as_echo "oops" >&6; }
+ as_fn_error $? "bad value ${withval} for --with-debug" "$LINENO" 5 ;;
+ esac
+else
+ with_debug="no"
+fi
+
+test "$with_debug" != "yes" && with_debug="no" # yes or no
+test "$with_debug" = "yes" && export CFLAGS="$CFLAGS -DDEBUG"
+result="$with_debug" ; test "$result" = "yes" && result="yes, added -DDEBUG"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5
+$as_echo "$result" >&6; }
+if test "$with_debug" = "yes" ; then if test -n "$RELEASE_INFO" ; then
+ RELEASE_INFO="$RELEASE_INFO-dbg"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: modified release" >&5
+$as_echo "modified release" >&6; }
+fi fi
+# ----------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether thread stack is too small for bufsiz buffers" >&5
+$as_echo_n "checking whether thread stack is too small for bufsiz buffers... " >&6; }
+ # many embedded platforms, superthreaded systems and kernel usage
+ # will severely limit the stackspace for its threads. Use _LOWSTK
+ # compile-define on those platforms.
+
+# Check whether --with-lowstk was given.
+if test "${with_lowstk+set}" = set; then :
+ withval=$with_lowstk; case "${withval}" in
+ yes|no|auto) with_lowstk="$withval" ;;
+ *) as_fn_error $? "bad value ${withval} for --with-lowstk" "$LINENO" 5 ;;
+ esac
+else
+ with_lowstk="auto"
+fi
+
+if test "$with_lowstk" = "auto"; then
+ case $target in
+ *-palmos-*) $with_lowstk="yes" ;;
+ esac
+fi
+test "$with_lowstk" != "yes" && with_lowstk="no" # yes or no
+test "$with_lowstk" = "yes" && CFLAGS="$CFLAGS -D_LOWSTK"
+result="$with_lowstk" ; test "$result" = "yes" && result="yes, added -D_LOWSTK"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_lowstk" >&5
+$as_echo "$with_lowstk" >&6; }
+# ---------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether can use mmap for file scanning" >&5
+$as_echo_n "checking whether can use mmap for file scanning... " >&6; }
+ # system with mmap are probably better performing an searching
+ # and parsing - atleast memory consumption is far better
+# Check whether --enable-mmap was given.
+if test "${enable_mmap+set}" = set; then :
+ enableval=$enable_mmap; case "${enableval}" in
+ yes|no|auto) enable_mmap="${enableval}" ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops" >&5
+$as_echo "oops" >&6; }
+ as_fn_error $? "bad value ${enableval} for --disable-mmap" "$LINENO" 5 ;;
+ esac
+else
+ enable_mmap="auto"
+fi
+
+if test "$enable_mmap" = "auto"
+then
+ test "$ac_cv_header_winbase_h" && enable_mmap="yes, winbase.h"
+ test "$ac_cv_header_sys_mman_h" && enable_mmap="yes, sys/mman.h"
+fi
+case "$enable_mmap" in
+ yes|yes,*) CFLAGS="$CFLAGS -D_USE_MMAP"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_mmap" >&5
+$as_echo "$enable_mmap" >&6; } ;;
+ *) enable_mmap="no"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (just a bit slower)" >&5
+$as_echo "no (just a bit slower)" >&6; } ;;
+esac
+# ---------------------------------------------------------------
+
+
+
+
+
+
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether making SDL parts" >&5
+$as_echo_n "checking whether making SDL parts... " >&6; }
+SDL=""
+SDL_GENERATE=""
+# Check whether --enable-sdl was given.
+if test "${enable_sdl+set}" = set; then :
+ enableval=$enable_sdl;
+else
+ enable_sdl="no"
+fi
+
+if test "$enable_sdl" = "no" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disabled" >&5
+$as_echo "no, disabled" >&6; }
+else
+ enable_sdl1=`$PKG_CONFIG --modversion sdl 2>/dev/null`
+ if test -z "$enable_sdl1"; then
+ enable_sdl2=`$PKG_CONFIG --modversion sdl2 2>/dev/null`
+ if test -z "$enable_sdl2"; then
+ enable_sdl3=`sdl-config --version 2>/dev/null`
+ SDL_GENERATE="sdl-uninstalled.pc"
+ enable_sdl="$enable_sdl3 (sdl-config)"
+ else
+ enable_sdl="$enable_sdl2 (pkgconfig sdl2)"
+ fi
+ else
+ enable_sdl="$enable_sdl1 (pkgconfig sdl)"
+ fi
+ enable_sdl="$enable_sdl."
+ case ".$enable_sdl" in
+ .1.*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, using SDL $enable_sdl" >&5
+$as_echo "yes, using SDL $enable_sdl" >&6; }
+ SDL="SDL" ;;
+ .2.*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, untested $enable_sdl" >&5
+$as_echo "yes, untested $enable_sdl" >&6; }
+ SDL="SDL" ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, $enable_sdl" >&5
+$as_echo "no, $enable_sdl" >&6; } ;;
+ esac
+ if test -n "$SDL_GENERATE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled SDL generation of... $SDL_GENERATE" >&5
+$as_echo "enabled SDL generation of... $SDL_GENERATE" >&6; }
+ fi
+fi
+
+
+
+# ----------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether using address sanitizer" >&5
+$as_echo_n "checking whether using address sanitizer... " >&6; }
+
+# Check whether --with-asan was given.
+if test "${with_asan+set}" = set; then :
+ withval=$with_asan; case "${withval}" in
+ yes|no) with_asan="$withval" ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: oops" >&5
+$as_echo "oops" >&6; }
+ as_fn_error $? "bad value ${withval} for --with-asan" "$LINENO" 5 ;;
+ esac
+else
+ with_asan="no"
+fi
+
+ASAN_LIBS=""
+ASAN_CFLAGS=""
+if test ".$with_asan" = ".yes" ; then
+ ASAN_LIBS="-lasan"
+ ASAN_CFLAGS="-fsanitize=address"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_asan, $ASAN_CFLAGS" >&5
+$as_echo "$with_asan, $ASAN_CFLAGS" >&6; }
+
+
+# ---------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking running extra tests on make check" >&5
+$as_echo_n "checking running extra tests on make check... " >&6; }
+if test "MKZIP" != ":" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ ZIPTESTS=""
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ZIPTESTS="#"
+fi
+
+# ---------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking link options" >&5
+$as_echo_n "checking link options... " >&6; }
+ZZIPLIB_LDFLAGS=""
+case "$host_os" in mingw*)
+ # we may assume that the backend is gnu-ld but DLLs need full resolution
+ ZZIPLIB_LDFLAGS="${wl}-no-undefined ${wl}-export-all-symbols -mconsole"
+ RESOLVES=' '
+;; darwin*)
+ # darwin never uses gnu-ld but the linker can do it anyway
+ ZZIPLIB_LDFLAGS="-export-dynamic"
+ RESOLVES=" # "
+;; *)
+ if test ".$can_build_shared" != ".no" ; then
+ ZZIPLIB_LDFLAGS="-export-dynamic"
+ if test ".$lt_cv_prog_gnu_ld" == ".yes" ; then
+ ZZIPLIB_LDFLAGS="${wl}--export-dynamic"
+ # TODO: that is for backward compatibility only
+ fi
+ fi
+ RESOLVES=" # "
+;; esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ZZIPLIB_LDFLAGS $RESOLVES" >&5
+$as_echo "$ZZIPLIB_LDFLAGS $RESOLVES" >&6; }
+
+
+
+# Check whether --with-defines was given.
+if test "${with_defines+set}" = set; then :
+ withval=$with_defines;
+else
+ with_defines="normal"
+fi
+
+
+#
+case ",$with_defines," in *,easy,*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding CFLAGS -DZZIP_EASY" >&5
+$as_echo "..adding CFLAGS -DZZIP_EASY" >&6; }
+ CFLAGS="$CFLAGS -DZZIP_EASY"
+;; esac
+case ",$with_defines," in *,harden,*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding CFLAGS -DZZIP_HARDEN" >&5
+$as_echo "..adding CFLAGS -DZZIP_HARDEN" >&6; }
+ CFLAGS="$CFLAGS -DZZIP_HARDEN"
+;; esac
+case ",$with_defines," in *,allow_modulo_entries,*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ..adding CFLAGS -DZZIP_ALLOW_MODULO_ENTRIES" >&5
+$as_echo "..adding CFLAGS -DZZIP_ALLOW_MODULO_ENTRIES" >&6; }
+ CFLAGS="$CFLAGS -DZZIP_ALLOW_MODULO_ENTRIES"
+;; esac
+
+# ---------------------------------------------------------------
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking auto silent in maintainer mode" >&5
+$as_echo_n "checking auto silent in maintainer mode... " >&6; }
+if test "$USE_MAINTAINER_MODE" = "no" ; then
+ test ".$TIMEOUT" = "." && TIMEOUT="9"
+ AUTOHEADER="sleep $TIMEOUT ; true || autoheader || skipped"
+ AUTOMAKE="sleep $TIMEOUT ; true || automake || skipped"
+ AUTOCONF="sleep $TIMEOUT ; true || autoconf || skipped"
+ if test ".$LIBTOOL" != "." ; then
+ LIBTOOL="$LIBTOOL --silent"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: libtool-silent, auto-sleep-9" >&5
+$as_echo "libtool-silent, auto-sleep-9" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: auto-sleep-9" >&5
+$as_echo "auto-sleep-9" >&6; }
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS frame-pointer" >&5
+$as_echo_n "checking CFLAGS frame-pointer... " >&6; }
+# Check whether --enable-frame-pointer was given.
+if test "${enable_frame_pointer+set}" = set; then :
+ enableval=$enable_frame_pointer;
+fi
+
+if test ".$enable_frame_pointer" = "."; then
+ case ".$enable_debug" in .|.no|.no,*) : ;; *) enable_frame_pointer="$enable_debug" ;; esac
+ case ".$with_debug" in .|.no|.no,*) : ;; *) enable_frame_pointer="$with_debug" ;; esac
+fi
+case ".$enable_frame_pointer" in
+ .|.no|.no,*) test ".$enable_frame_pointer" = "." && enable_frame_pointer="no"
+ CFLAGS=`echo " $CFLAGS " | sed -e 's/ -g / /'`
+ if test ".$GCC" = ".yes" ; then
+ CFLAGS="$CFLAGS -fomit-frame-pointer"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_frame_pointer, -fomit-frame-pointer added" >&5
+$as_echo "$enable_frame_pointer, -fomit-frame-pointer added" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_frame_pointer, -g removed" >&5
+$as_echo "$enable_frame_pointer, -g removed" >&6; }
+ fi ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_frame_pointer, kept" >&5
+$as_echo "$enable_frame_pointer, kept" >&6; } ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for maximum warnings" >&5
+$as_echo_n "checking CFLAGS for maximum warnings... " >&6; }
+if ${ac_cv_cflags_warn_all+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_cflags_warn_all="no, unknown"
+
+ 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_save_CFLAGS="$CFLAGS"
+for ac_arg in "-pedantic % -Wall" "-xstrconst % -v" "-std1 % -verbose -w0 -warnprotos" "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" "-ansi -ansiE % -fullwarn" "+ESlit % +w1" "-Xc % -pvctl,fullmsg" "-h conform % -h msglevel 2" #
+do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_cflags_warn_all=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+ CFLAGS="$ac_save_CFLAGS"
+ 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: $ac_cv_cflags_warn_all" >&5
+$as_echo "$ac_cv_cflags_warn_all" >&6; }
+case ".$ac_cv_cflags_warn_all" in
+ .ok|.ok,*) ;;
+ .|.no|.no,*)
+ ;;
+ *)
+ if echo " $CFLAGS " | grep " $ac_cv_cflags_warn_all " 2>&1 >/dev/null
+ then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_warn_all"; } >&5
+ (: CFLAGS does contain $ac_cv_cflags_warn_all) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_warn_all\""; } >&5
+ (: CFLAGS="$CFLAGS $ac_cv_cflags_warn_all") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ CFLAGS="$CFLAGS $ac_cv_cflags_warn_all"
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wpointer-arith" >&5
+$as_echo_n "checking CFLAGS for gcc -Wpointer-arith... " >&6; }
+if ${ac_cv_cflags_gcc_option__Wpointer_arith+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_cflags_gcc_option__Wpointer_arith="no, unknown"
+
+ 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_save_CFLAGS="$CFLAGS"
+for ac_arg in "-pedantic -Werror % -Wpointer-arith" "-pedantic % -Wpointer-arith %% no, obsolete" #
+do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_cflags_gcc_option__Wpointer_arith=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+ CFLAGS="$ac_save_CFLAGS"
+ 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: $ac_cv_cflags_gcc_option__Wpointer_arith" >&5
+$as_echo "$ac_cv_cflags_gcc_option__Wpointer_arith" >&6; }
+case ".$ac_cv_cflags_gcc_option__Wpointer_arith" in
+ .ok|.ok,*) ;;
+ .|.no|.no,*) ;;
+ *)
+ if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Wpointer_arith " 2>&1 >/dev/null
+ then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Wpointer_arith"; } >&5
+ (: CFLAGS does contain $ac_cv_cflags_gcc_option__Wpointer_arith) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Wpointer_arith\""; } >&5
+ (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wpointer_arith") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wpointer_arith"
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wsign-compare" >&5
+$as_echo_n "checking CFLAGS for gcc -Wsign-compare... " >&6; }
+if ${ac_cv_cflags_gcc_option__Wsign_compare+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_cflags_gcc_option__Wsign_compare="no, unknown"
+
+ 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_save_CFLAGS="$CFLAGS"
+for ac_arg in "-pedantic -Werror % -Wsign-compare" "-pedantic % -Wsign-compare %% no, obsolete" #
+do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_cflags_gcc_option__Wsign_compare=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+ CFLAGS="$ac_save_CFLAGS"
+ 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: $ac_cv_cflags_gcc_option__Wsign_compare" >&5
+$as_echo "$ac_cv_cflags_gcc_option__Wsign_compare" >&6; }
+case ".$ac_cv_cflags_gcc_option__Wsign_compare" in
+ .ok|.ok,*) ;;
+ .|.no|.no,*) ;;
+ *)
+ if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Wsign_compare " 2>&1 >/dev/null
+ then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Wsign_compare"; } >&5
+ (: CFLAGS does contain $ac_cv_cflags_gcc_option__Wsign_compare) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Wsign_compare\""; } >&5
+ (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wsign_compare") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wsign_compare"
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wmissing-declarations" >&5
+$as_echo_n "checking CFLAGS for gcc -Wmissing-declarations... " >&6; }
+if ${ac_cv_cflags_gcc_option__Wmissing_declarations+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_cflags_gcc_option__Wmissing_declarations="no, unknown"
+
+ 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_save_CFLAGS="$CFLAGS"
+for ac_arg in "-pedantic -Werror % -Wmissing-declarations" "-pedantic % -Wmissing-declarations %% no, obsolete" #
+do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_cflags_gcc_option__Wmissing_declarations=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+ CFLAGS="$ac_save_CFLAGS"
+ 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: $ac_cv_cflags_gcc_option__Wmissing_declarations" >&5
+$as_echo "$ac_cv_cflags_gcc_option__Wmissing_declarations" >&6; }
+case ".$ac_cv_cflags_gcc_option__Wmissing_declarations" in
+ .ok|.ok,*) ;;
+ .|.no|.no,*) ;;
+ *)
+ if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Wmissing_declarations " 2>&1 >/dev/null
+ then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Wmissing_declarations"; } >&5
+ (: CFLAGS does contain $ac_cv_cflags_gcc_option__Wmissing_declarations) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Wmissing_declarations\""; } >&5
+ (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wmissing_declarations") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wmissing_declarations"
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wdeclaration-after-statement" >&5
+$as_echo_n "checking CFLAGS for gcc -Wdeclaration-after-statement... " >&6; }
+if ${ac_cv_cflags_gcc_option__Wdeclaration_after_statement+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_cflags_gcc_option__Wdeclaration_after_statement="no, unknown"
+
+ 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_save_CFLAGS="$CFLAGS"
+for ac_arg in "-pedantic -Werror % -Wdeclaration-after-statement" "-pedantic % -Wdeclaration-after-statement %% no, obsolete" #
+do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_cflags_gcc_option__Wdeclaration_after_statement=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+ CFLAGS="$ac_save_CFLAGS"
+ 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: $ac_cv_cflags_gcc_option__Wdeclaration_after_statement" >&5
+$as_echo "$ac_cv_cflags_gcc_option__Wdeclaration_after_statement" >&6; }
+case ".$ac_cv_cflags_gcc_option__Wdeclaration_after_statement" in
+ .ok|.ok,*) ;;
+ .|.no|.no,*) ;;
+ *)
+ if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Wdeclaration_after_statement " 2>&1 >/dev/null
+ then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Wdeclaration_after_statement"; } >&5
+ (: CFLAGS does contain $ac_cv_cflags_gcc_option__Wdeclaration_after_statement) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Wdeclaration_after_statement\""; } >&5
+ (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wdeclaration_after_statement") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wdeclaration_after_statement"
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Werror-implicit-function-declaration" >&5
+$as_echo_n "checking CFLAGS for gcc -Werror-implicit-function-declaration... " >&6; }
+if ${ac_cv_cflags_gcc_option__Werror_implicit_function_declaration+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_cflags_gcc_option__Werror_implicit_function_declaration="no, unknown"
+
+ 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_save_CFLAGS="$CFLAGS"
+for ac_arg in "-pedantic -Werror % -Werror-implicit-function-declaration" "-pedantic % -Werror-implicit-function-declaration %% no, obsolete" #
+do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_cflags_gcc_option__Werror_implicit_function_declaration=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+ CFLAGS="$ac_save_CFLAGS"
+ 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: $ac_cv_cflags_gcc_option__Werror_implicit_function_declaration" >&5
+$as_echo "$ac_cv_cflags_gcc_option__Werror_implicit_function_declaration" >&6; }
+case ".$ac_cv_cflags_gcc_option__Werror_implicit_function_declaration" in
+ .ok|.ok,*) ;;
+ .|.no|.no,*) ;;
+ *)
+ if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Werror_implicit_function_declaration " 2>&1 >/dev/null
+ then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Werror_implicit_function_declaration"; } >&5
+ (: CFLAGS does contain $ac_cv_cflags_gcc_option__Werror_implicit_function_declaration) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Werror_implicit_function_declaration\""; } >&5
+ (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Werror_implicit_function_declaration") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Werror_implicit_function_declaration"
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Wstrict-aliasing" >&5
+$as_echo_n "checking CFLAGS for gcc -Wstrict-aliasing... " >&6; }
+if ${ac_cv_cflags_gcc_option__Wstrict_aliasing+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_cflags_gcc_option__Wstrict_aliasing="no, unknown"
+
+ 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_save_CFLAGS="$CFLAGS"
+for ac_arg in "-pedantic -Werror % -Wstrict-aliasing" "-pedantic % -Wstrict-aliasing %% no, obsolete" #
+do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_cflags_gcc_option__Wstrict_aliasing=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+ CFLAGS="$ac_save_CFLAGS"
+ 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: $ac_cv_cflags_gcc_option__Wstrict_aliasing" >&5
+$as_echo "$ac_cv_cflags_gcc_option__Wstrict_aliasing" >&6; }
+case ".$ac_cv_cflags_gcc_option__Wstrict_aliasing" in
+ .ok|.ok,*) ;;
+ .|.no|.no,*) ;;
+ *)
+ if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Wstrict_aliasing " 2>&1 >/dev/null
+ then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Wstrict_aliasing"; } >&5
+ (: CFLAGS does contain $ac_cv_cflags_gcc_option__Wstrict_aliasing) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Wstrict_aliasing\""; } >&5
+ (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wstrict_aliasing") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Wstrict_aliasing"
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for gcc -Warray-bounds" >&5
+$as_echo_n "checking CFLAGS for gcc -Warray-bounds... " >&6; }
+if ${ac_cv_cflags_gcc_option__Warray_bounds+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_cflags_gcc_option__Warray_bounds="no, unknown"
+
+ 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_save_CFLAGS="$CFLAGS"
+for ac_arg in "-pedantic -Werror % -Warray-bounds" "-pedantic % -Warray-bounds %% no, obsolete" #
+do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_cflags_gcc_option__Warray_bounds=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+ CFLAGS="$ac_save_CFLAGS"
+ 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: $ac_cv_cflags_gcc_option__Warray_bounds" >&5
+$as_echo "$ac_cv_cflags_gcc_option__Warray_bounds" >&6; }
+case ".$ac_cv_cflags_gcc_option__Warray_bounds" in
+ .ok|.ok,*) ;;
+ .|.no|.no,*) ;;
+ *)
+ if echo " $CFLAGS " | grep " $ac_cv_cflags_gcc_option__Warray_bounds " 2>&1 >/dev/null
+ then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_gcc_option__Warray_bounds"; } >&5
+ (: CFLAGS does contain $ac_cv_cflags_gcc_option__Warray_bounds) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_gcc_option__Warray_bounds\""; } >&5
+ (: CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Warray_bounds") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ CFLAGS="$CFLAGS $ac_cv_cflags_gcc_option__Warray_bounds"
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS making strings readonly" >&5
+$as_echo_n "checking CFLAGS making strings readonly... " >&6; }
+if ${ac_cv_cflags_no_writable_strings+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_cflags_no_writable_strings="no, unknown"
+
+ 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_save_CFLAGS="$CFLAGS"
+# IRIX C compiler:
+# -use_readonly_const is the default for IRIX C,
+# puts them into .rodata, but they are copied later.
+# need to be "-G0 -rdatashared" for strictmode but
+# I am not sure what effect that has really. - guidod
+for ac_arg in "-pedantic % -fno-writable-strings -Wwrite-strings" "-pedantic % -fconst-strings -Wwrite-strings" "-v -Xc % -xstrconst" "+w1 -Aa % +ESlit" "-w0 -std1 % -readonly_strings" "-fullwarn -use_readonly_const %% ok, its the default" #
+do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_cflags_no_writable_strings=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case ".$ac_cv_cflags_no_writable_strings" in
+ .|.no|.no,*) ;;
+ *) # sanity check - testing strcpy() from string.h
+ cp config.log config.tmp
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+int
+main ()
+{
+
+ char test[16];
+ if (strcpy (test, "test")) return 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if test `diff config.log config.tmp | grep -i warning | wc -l` != 0
+ then ac_cv_cflags_no_writable_strings="no, suppressed, string.h," ; fi
+else
+ ac_cv_cflags_no_writable_strings="no, suppressed, string.h"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ rm config.tmp
+ ;;
+esac
+ CFLAGS="$ac_save_CFLAGS"
+ 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: $ac_cv_cflags_no_writable_strings" >&5
+$as_echo "$ac_cv_cflags_no_writable_strings" >&6; }
+case ".$ac_cv_cflags_no_writable_strings" in
+ .ok|.ok,*) ;;
+ .|.no|.no,*)
+ ;;
+ *)
+ if echo " $CFLAGS " | grep " $ac_cv_cflags_no_writable_strings " 2>&1 >/dev/null
+ then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_no_writable_strings"; } >&5
+ (: CFLAGS does contain $ac_cv_cflags_no_writable_strings) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_no_writable_strings\""; } >&5
+ (: CFLAGS="$CFLAGS $ac_cv_cflags_no_writable_strings") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ CFLAGS="$CFLAGS $ac_cv_cflags_no_writable_strings"
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for strict prototypes" >&5
+$as_echo_n "checking CFLAGS for strict prototypes... " >&6; }
+if ${ac_cv_cflags_strict_prototypes+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_cflags_strict_prototypes="no, unknown"
+
+ 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_save_CFLAGS="$CFLAGS"
+for ac_arg in "-pedantic % -fstrict-prototypes -Wstrict-prototypes" "-pedantic % -Wstrict-prototypes" "-pedantic % -Wmissing-prototypes" "-pedantic % -Werror-implicit-function-declaration" "-pedantic % -Wimplicit-function-declaration" #
+do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_cflags_strict_prototypes=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case ".$ac_cv_cflags_strict_prototypes" in
+ .|.no|.no,*) ;;
+ *) # sanity check with signal() from sys/signal.h
+ cp config.log config.tmp
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <signal.h>
+int
+main ()
+{
+
+ if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 1;
+ if (signal (SIGINT, SIG_IGN) != SIG_DFL) return 2;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if test `diff config.log config.tmp | grep -i warning | wc -l` != 0
+then if test `diff config.log config.tmp | grep -i warning | wc -l` != 1
+then ac_cv_cflags_strict_prototypes="no, suppressed, signal.h," ; fi ; fi
+else
+ ac_cv_cflags_strict_prototypes="no, suppressed, signal.h"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ rm config.tmp
+ ;;
+esac
+ CFLAGS="$ac_save_CFLAGS"
+ 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: $ac_cv_cflags_strict_prototypes" >&5
+$as_echo "$ac_cv_cflags_strict_prototypes" >&6; }
+case ".$ac_cv_cflags_strict_prototypes" in
+ .ok|.ok,*) ;;
+ .|.no|.no,*)
+ ;;
+ *)
+ if echo " $CFLAGS " | grep " $ac_cv_cflags_strict_prototypes " 2>&1 >/dev/null
+ then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_strict_prototypes"; } >&5
+ (: CFLAGS does contain $ac_cv_cflags_strict_prototypes) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_strict_prototypes\""; } >&5
+ (: CFLAGS="$CFLAGS $ac_cv_cflags_strict_prototypes") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ CFLAGS="$CFLAGS $ac_cv_cflags_strict_prototypes"
+ fi
+ ;;
+esac
+
+# ---------------------------------------------------------------
+ # The prefix default can be set in configure.ac (otherwise it is /usr/local)
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix. Allows to override the makevar 'prefix' later
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Check whether --enable-enable-default-pkgconfigdir was given.
+if test "${enable_enable_default_pkgconfigdir+set}" = set; then :
+ enableval=$enable_enable_default_pkgconfigdir;
+fi
+
+test ".$enable_default_pkgconfigdir" = "." && enable_default_pkgconfigdir="no"
+case ".$enable_default_pkgconfigdir" in
+ .no) ax_warning_default_pkgconfig_def='${libdir}/pkgconfig' ;;
+ .yes) # autodetect
+ if test ".$PKG_CONFIG" = "." ; then # we use the same default as in pkg.m4
+ # 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_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
+
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+ ;;
+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 "$PKG_CONFIG" = "no"
+ then ax_warning_default_pkgconfig_def="/tmp" ; test -d "/usr/lib/pkgconfig" && ax_warning_default_pkgconfig_def="/usr/lib/pkgconfig"
+ else ax_warning_default_pkgconfig_bin=`$as_dirname -- "$ax_warning_default_pkgconfig_def" ||
+$as_expr X"$ax_warning_default_pkgconfig_def" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ax_warning_default_pkgconfig_def" : 'X\(//\)[^/]' \| \
+ X"$ax_warning_default_pkgconfig_def" : 'X\(//\)$' \| \
+ X"$ax_warning_default_pkgconfig_def" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ax_warning_default_pkgconfig_def" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'` ;
+ if test -d "$ax_warning_default_pkgconfig_bin/lib/pkgconfig" ; then
+ ax_warning_default_pkgconfig_def="$ax_warning_default_pkgconfig_bin/lib/pkgconfig"
+ else ax_warning_default_pkgconfig_bin=`$as_dirname -- "$ax_warning_default_pkgconfig_def" ||
+$as_expr X"$ax_warning_default_pkgconfig_def" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ax_warning_default_pkgconfig_def" : 'X\(//\)[^/]' \| \
+ X"$ax_warning_default_pkgconfig_def" : 'X\(//\)$' \| \
+ X"$ax_warning_default_pkgconfig_def" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ax_warning_default_pkgconfig_def" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ if test -d "$ax_warning_default_pkgconfig_bin/lib/pkgconfig" ; then
+ ax_warning_default_pkgconfig_def="$ax_warning_default_pkgconfig_bin/lib/pkgconfig"
+ else
+ if test -d "/usr/lib/pkgconfig" ; then
+ ax_warning_default_pkgconfig_def="/usr/lib/pkgconfig"
+ else
+ ax_warning_default_pkgconfig_def="/tmp"
+ fi fi fi
+ fi ;;
+ *) ax_warning_default_pkgconfig_def="$enable_default_pkgconfigdir" ;;
+esac
+ax_warning_default_pkgconfig_loc='$ax_warning_default_pkgconfig_def'
+
+ if test ".$PKG_CONFIG" = "." ; then # we use the same default as in pkg.m4
+ # 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_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
+
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+ ;;
+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 "$PKG_CONFIG" = "no"
+ then ax_warning_default_pkgconfig_dir="/" ; test -d "/usr/lib/pkgconfig" && ax_warning_default_pkgconfig_dir="/usr/lib/pkgconfig"
+ else ax_warning_default_pkgconfig_bin=`$as_dirname -- "$ax_warning_default_pkgconfig_dir" ||
+$as_expr X"$ax_warning_default_pkgconfig_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ax_warning_default_pkgconfig_dir" : 'X\(//\)[^/]' \| \
+ X"$ax_warning_default_pkgconfig_dir" : 'X\(//\)$' \| \
+ X"$ax_warning_default_pkgconfig_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ax_warning_default_pkgconfig_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'` ;
+ if test -d "$ax_warning_default_pkgconfig_bin/lib/pkgconfig" ; then
+ ax_warning_default_pkgconfig_dir="$ax_warning_default_pkgconfig_bin/lib/pkgconfig"
+ else ax_warning_default_pkgconfig_bin=`$as_dirname -- "$ax_warning_default_pkgconfig_dir" ||
+$as_expr X"$ax_warning_default_pkgconfig_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ax_warning_default_pkgconfig_dir" : 'X\(//\)[^/]' \| \
+ X"$ax_warning_default_pkgconfig_dir" : 'X\(//\)$' \| \
+ X"$ax_warning_default_pkgconfig_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ax_warning_default_pkgconfig_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ if test -d "$ax_warning_default_pkgconfig_bin/lib/pkgconfig" ; then
+ ax_warning_default_pkgconfig_dir="$ax_warning_default_pkgconfig_bin/lib/pkgconfig"
+ else
+ if test -d "/usr/lib/pkgconfig" ; then
+ ax_warning_default_pkgconfig_dir="/usr/lib/pkgconfig"
+ else
+ ax_warning_default_pkgconfig_dir="/"
+ fi fi fi
+ fi
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: : last pkgconfig dir is assumed as \"\$ax_warning_default_pkgconfig_dir\""; } >&5
+ (: last pkgconfig dir is assumed as "$ax_warning_default_pkgconfig_dir") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ax_warning_default_pkgconfig_dir=`eval "echo $ax_warning_default_pkgconfig_dir"`
+ax_warning_default_pkgconfig_dir=`eval "echo $ax_warning_default_pkgconfig_dir"`
+ax_warning_default_pkgconfig_loc=`eval "echo $ax_warning_default_pkgconfig_loc"`
+ax_warning_default_pkgconfig_loc=`eval "echo $ax_warning_default_pkgconfig_loc"`
+ax_warning_default_pkgconfig_loc=`eval "echo $ax_warning_default_pkgconfig_loc"`
+ax_warning_default_pkgconfig_loc=`eval "echo $ax_warning_default_pkgconfig_loc"`
+for ax_warning_default_pkgconfig_dir in `echo "$PKG_CONFIG_PATH:$ax_warning_default_pkgconfig_dir" | sed -e 's,:, ,g'` ; do
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : test \".\$ax_warning_default_pkgconfig_loc\" = \".\$ax_warning_default_pkgconfig_dir\""; } >&5
+ (: test ".$ax_warning_default_pkgconfig_loc" = ".$ax_warning_default_pkgconfig_dir") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ test ".$ax_warning_default_pkgconfig_loc" = ".$ax_warning_default_pkgconfig_dir" && break
+done
+if test "$ax_warning_default_pkgconfig_loc" != "$ax_warning_default_pkgconfig_dir" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: pkgconfigdir=$ax_warning_default_pkgconfig_loc (see config.log)" >&5
+$as_echo "$as_me: warning: pkgconfigdir=$ax_warning_default_pkgconfig_loc (see config.log)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: perhaps: make install pkgconfigdir=$ax_warning_default_pkgconfig_dir" >&5
+$as_echo "$as_me: perhaps: make install pkgconfigdir=$ax_warning_default_pkgconfig_dir" >&6;}
+ cat >&5 <<EOF
+ pkgconfigdir: the default pkgconfigdir of $ax_warning_default_pkgconfig_loc
+ pkgconfigdir: is not listed in the dirlist where pkg-config will look for
+ pkgconfigdir: package-configs - you can override the install-path using
+ pkgconfigdir: make install pkgconfigdir=$ax_warning_default_pkgconfig_dir
+ pkgconfigdir: or set/append the directory to the environment variable
+ pkgconfigdir: PKG_CONFIG_PATH="$ax_warning_default_pkgconfig_loc"
+EOF
+ fi
+
+pkgconfigdir="$ax_warning_default_pkgconfig_dir"
+
+
+# Check whether --enable-enable-default-aclocaldir was given.
+if test "${enable_enable_default_aclocaldir+set}" = set; then :
+ enableval=$enable_enable_default_aclocaldir;
+fi
+
+test ".$enable_default_aclocaldir" = "." && enable_default_aclocaldir="no"
+case ".$enable_default_aclocaldir" in
+ .no) ax_warning_default_aclocal_def='${datadir}/aclocal' ;;
+ .yes) # autodetect
+ if test ".$ACLOCAL" = "." ; then
+ # Extract the first word of "aclocal", so it can be a program name with args.
+set dummy aclocal; 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_ACLOCAL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ACLOCAL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ACLOCAL="$ACLOCAL" # 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_ACLOCAL="$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_ACLOCAL" && ac_cv_path_ACLOCAL=":"
+ ;;
+esac
+fi
+ACLOCAL=$ac_cv_path_ACLOCAL
+if test -n "$ACLOCAL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACLOCAL" >&5
+$as_echo "$ACLOCAL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+ ax_warning_default_aclocal_bin="$ACLOCAL"
+ test ".$ax_warning_default_aclocal_bin" = "." && ax_warning_default_aclocal_bin="aclocal"
+ ax_warning_default_aclocal_def=`test ".$SHELL" = "." && SHELL="'sh'" ; eval "$ax_warning_default_aclocal_bin --print-ac-dir"`
+ test ".$ax_warning_default_aclocal_def" = "." && test -d "/usr/share/aclocal" && ax_warning_default_aclocal_def="/usr/share/aclocal"
+ test ".$ax_warning_default_aclocal_def" = "." && ax_warning_default_aclocal_def="/tmp" ;;
+ *) ax_warning_default_aclocal_def="$enable_default_aclocaldir" ;;
+esac
+ax_warning_default_aclocal_loc='$ax_warning_default_aclocal_def'
+
+ if test ".$ACLOCAL" = "." ; then
+ # Extract the first word of "aclocal", so it can be a program name with args.
+set dummy aclocal; 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_ACLOCAL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ACLOCAL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ACLOCAL="$ACLOCAL" # 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_ACLOCAL="$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_ACLOCAL" && ac_cv_path_ACLOCAL=":"
+ ;;
+esac
+fi
+ACLOCAL=$ac_cv_path_ACLOCAL
+if test -n "$ACLOCAL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACLOCAL" >&5
+$as_echo "$ACLOCAL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+ ax_warning_default_aclocal_bin="$ACLOCAL"
+ test ".$ax_warning_default_aclocal_bin" = "." && ax_warning_default_aclocal_bin="aclocal"
+ ax_warning_default_aclocal_dir=`test ".$SHELL" = "." && SHELL="'sh'" ; eval "$ax_warning_default_aclocal_bin --print-ac-dir"`
+ test ".$ax_warning_default_aclocal_dir" = "." && test -d "/usr/share/aclocal" && ax_warning_default_aclocal_dir="/usr/share/aclocal"
+ test ".$ax_warning_default_aclocal_dir" = "." && ax_warning_default_aclocal_dir="/tmp"
+ax_warning_default_aclocal_dir=`eval "echo $ax_warning_default_aclocal_dir"` # we need to expand
+ax_warning_default_aclocal_dir=`eval "echo $ax_warning_default_aclocal_dir"`
+ax_warning_default_aclocal_loc=`eval "echo $ax_warning_default_aclocal_loc"`
+ax_warning_default_aclocal_loc=`eval "echo $ax_warning_default_aclocal_loc"`
+ax_warning_default_aclocal_loc=`eval "echo $ax_warning_default_aclocal_loc"`
+ax_warning_default_aclocal_loc=`eval "echo $ax_warning_default_aclocal_loc"`
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: : test \"\$ax_warning_default_aclocal_loc\" = \"\$ax_warning_default_aclocal_dir\""; } >&5
+ (: test "$ax_warning_default_aclocal_loc" = "$ax_warning_default_aclocal_dir") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+if test "$ax_warning_default_aclocal_loc" != "$ax_warning_default_aclocal_dir" ; then
+ if test -f "$ax_warning_default_aclocal_dir/dirlist" ; then
+ for ax_warning_default_aclocal_dir in `cat $ax_warning_default_aclocal_dir/dirlist` $ax_warning_default_aclocal_dir ; do
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : test \"\$ax_warning_default_aclocal_loc\" = \"\$ax_warning_default_aclocal_dir\""; } >&5
+ (: test "$ax_warning_default_aclocal_loc" = "$ax_warning_default_aclocal_dir") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ test "$ax_warning_default_aclocal_loc" = "$ax_warning_default_aclocal_dir" && break
+ done
+ fi
+ if test "$ax_warning_default_aclocal_loc" != "$ax_warning_default_aclocal_dir" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: aclocaldir=$ax_warning_default_aclocal_loc (see config.log)" >&5
+$as_echo "$as_me: warning: aclocaldir=$ax_warning_default_aclocal_loc (see config.log)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: perhaps: make install aclocaldir=$ax_warning_default_aclocal_dir" >&5
+$as_echo "$as_me: perhaps: make install aclocaldir=$ax_warning_default_aclocal_dir" >&6;}
+ cat >&5 <<EOF
+ aclocaldir: the default aclocaldir of $ax_warning_default_aclocal_loc
+ aclocaldir: is not listed in the dirlist where aclocal will look
+ aclocaldir: for macros - you can override the install-path using
+ aclocaldir: make install aclocaldir=$ax_warning_default_aclocal_dir
+ aclocaldir: or append the directory to aclocal reconfigures later as
+ aclocaldir: aclocal -I $ax_warning_default_aclocal_loc
+ aclocaldir: when an autoconf macro is needed from that directory
+EOF
+ fi
+fi
+
+aclocaldir="$ax_warning_default_aclocal_dir"
+
+
+
+ac_config_files="$ac_config_files Makefile zzip/Makefile zzipwrap/Makefile SDL/Makefile docs/Makefile test/Makefile bins/Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" 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
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to 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;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in AS \
+DLLTOOL \
+OBJDUMP \
+SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+deplibs_check_method \
+file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+sharedlib_from_linklib_cmd \
+AR \
+AR_FLAGS \
+archiver_list_spec \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
+nm_file_list_spec \
+lt_cv_truncate_bin \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_pic \
+lt_prog_compiler_wl \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+MANIFEST_TOOL \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_separator \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postlink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+PACKAGE="$PACKAGE"
+PACKAGE="$PACKAGE"
+
+ax_create_pkgconfig_generate="$ax_create_pkgconfig_generate"
+pkgconfig_prefix='$prefix'
+pkgconfig_execprefix='$exec_prefix'
+pkgconfig_bindir='$bindir'
+pkgconfig_libdir='$libdir'
+pkgconfig_includedir='$includedir'
+pkgconfig_datarootdir='$datarootdir'
+pkgconfig_datadir='$datadir'
+pkgconfig_sysconfdir='$sysconfdir'
+pkgconfig_suffix='$ax_create_pkgconfig_suffix'
+pkgconfig_package='$PACKAGE_NAME'
+pkgconfig_libname='$ax_create_pkgconfig_libname'
+pkgconfig_description='$ax_create_pkgconfig_description'
+pkgconfig_version='$ax_create_pkgconfig_version'
+pkgconfig_requires='$ax_create_pkgconfig_requires'
+pkgconfig_libs='$ax_create_pkgconfig_libs'
+pkgconfig_ldflags='$ax_create_pkgconfig_ldflags'
+pkgconfig_cppflags='$ax_create_pkgconfig_cppflags'
+pkgconfig_src_libdir='$ax_create_pkgconfig_src_libdir'
+pkgconfig_src_headers='$ax_create_pkgconfig_src_headers'
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "zzip/_config.h") CONFIG_COMMANDS="$CONFIG_COMMANDS zzip/_config.h" ;;
+ "zzip/_msvc.h") CONFIG_COMMANDS="$CONFIG_COMMANDS zzip/_msvc.h" ;;
+ "$ax_create_pkgconfig_generate") CONFIG_COMMANDS="$CONFIG_COMMANDS $ax_create_pkgconfig_generate" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "zzip/Makefile") CONFIG_FILES="$CONFIG_FILES zzip/Makefile" ;;
+ "zzipwrap/Makefile") CONFIG_FILES="$CONFIG_FILES zzipwrap/Makefile" ;;
+ "SDL/Makefile") CONFIG_FILES="$CONFIG_FILES SDL/Makefile" ;;
+ "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
+ "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
+ "bins/Makefile") CONFIG_FILES="$CONFIG_FILES bins/Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/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
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named 'Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running 'make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "$am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=''
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Assembler program.
+AS=$lt_AS
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Object dumper program.
+OBJDUMP=$lt_OBJDUMP
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
+# The archiver.
+AR=$lt_AR
+
+# Flags to create an archive.
+AR_FLAGS=$lt_AR_FLAGS
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and where our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x$2 in
+ x)
+ ;;
+ *:)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+ ;;
+ x:*)
+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+ ;;
+ *)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in $*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+ ;;
+ "zzip/_config.h":C) ac_prefix_conf_OUT=`echo zzip/_config.h`
+ac_prefix_conf_DEF=`echo _$ac_prefix_conf_OUT | sed -e "y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:" -e "s/[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g"`
+ac_prefix_conf_PKG=`echo zzip`
+ac_prefix_conf_LOW=`echo _$ac_prefix_conf_PKG | sed -e "y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:"`
+ac_prefix_conf_UPP=`echo $ac_prefix_conf_PKG | sed -e "y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:" -e "/^[0123456789]/s/^/_/"`
+ac_prefix_conf_INP=`echo "config.h" | sed -e 's/ *//'`
+if test ".$ac_prefix_conf_INP" = "."; then
+ for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue
+ case "$ac_file" in
+ *.h) ac_prefix_conf_INP=$ac_file ;;
+ *)
+ esac
+ test ".$ac_prefix_conf_INP" != "." && break
+ done
+fi
+if test ".$ac_prefix_conf_INP" = "."; then
+ case "$ac_prefix_conf_OUT" in
+ */*) ac_prefix_conf_INP=`basename "$ac_prefix_conf_OUT"`
+ ;;
+ *-*) ac_prefix_conf_INP=`echo "$ac_prefix_conf_OUT" | sed -e "s/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*-//"`
+ ;;
+ *) ac_prefix_conf_INP=config.h
+ ;;
+ esac
+fi
+if test -z "$ac_prefix_conf_PKG" ; then
+ as_fn_error $? "no prefix for _PREFIX_PKG_CONFIG_H" "$LINENO" 5
+else
+ if test ! -f "$ac_prefix_conf_INP" ; then if test -f "$srcdir/$ac_prefix_conf_INP" ; then
+ ac_prefix_conf_INP="$srcdir/$ac_prefix_conf_INP"
+ fi fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&5
+$as_echo "$as_me: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&6;}
+ if test -f $ac_prefix_conf_INP ; then
+ echo "s/^#undef *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]\\)/#undef $ac_prefix_conf_UPP""_\\1/" > conftest.prefix
+ echo "s/^#undef *\\([abcdefghijklmnopqrstuvwxyz]\\)/#undef $ac_prefix_conf_LOW""_\\1/" >> conftest.prefix
+ echo "s/^#define *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_UPP""_\\1 \\" >> conftest.prefix
+ echo "#define $ac_prefix_conf_UPP""_\\1 \\2 \\" >> conftest.prefix
+ echo "#endif/" >>conftest.prefix
+ echo "s/^#define *\\([abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_LOW""_\\1 \\" >> conftest.prefix
+ echo "#define $ac_prefix_conf_LOW""_\\1 \\2 \\" >> conftest.prefix
+ echo "#endif/" >> conftest.prefix
+ # now executing _script on _DEF input to create _OUT output file
+ echo "#ifndef $ac_prefix_conf_DEF" >$tmp/pconfig.h
+ echo "#define $ac_prefix_conf_DEF 1" >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h
+
+ sed -f conftest.prefix $ac_prefix_conf_INP >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo '/* once:' $ac_prefix_conf_DEF '*/' >>$tmp/pconfig.h
+ echo "#endif" >>$tmp/pconfig.h
+ if cmp -s $ac_prefix_conf_OUT $tmp/pconfig.h 2>/dev/null; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_prefix_conf_OUT is unchanged" >&5
+$as_echo "$as_me: $ac_prefix_conf_OUT is unchanged" >&6;}
+ else
+ ac_dir=`$as_dirname -- "$ac_prefix_conf_OUT" ||
+$as_expr X"$ac_prefix_conf_OUT" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(//\)[^/]' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(//\)$' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_prefix_conf_OUT" |
+ 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
+ rm -f "$ac_prefix_conf_OUT"
+ mv $tmp/pconfig.h "$ac_prefix_conf_OUT"
+ fi
+ cp conftest.prefix _configs.sed
+ else
+ as_fn_error $? "input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" "$LINENO" 5
+ fi
+ rm -f conftest.*
+fi
+ ;;
+ "zzip/_msvc.h":C) ac_prefix_conf_OUT=`echo zzip/_msvc.h`
+ac_prefix_conf_DEF=`echo _$ac_prefix_conf_OUT | sed -e "y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:" -e "s/[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g"`
+ac_prefix_conf_PKG=`echo zzip`
+ac_prefix_conf_LOW=`echo _$ac_prefix_conf_PKG | sed -e "y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:"`
+ac_prefix_conf_UPP=`echo $ac_prefix_conf_PKG | sed -e "y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:" -e "/^[0123456789]/s/^/_/"`
+ac_prefix_conf_INP=`echo "zzip/_msvc.in" | sed -e 's/ *//'`
+if test ".$ac_prefix_conf_INP" = "."; then
+ for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue
+ case "$ac_file" in
+ *.h) ac_prefix_conf_INP=$ac_file ;;
+ *)
+ esac
+ test ".$ac_prefix_conf_INP" != "." && break
+ done
+fi
+if test ".$ac_prefix_conf_INP" = "."; then
+ case "$ac_prefix_conf_OUT" in
+ */*) ac_prefix_conf_INP=`basename "$ac_prefix_conf_OUT"`
+ ;;
+ *-*) ac_prefix_conf_INP=`echo "$ac_prefix_conf_OUT" | sed -e "s/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*-//"`
+ ;;
+ *) ac_prefix_conf_INP=config.h
+ ;;
+ esac
+fi
+if test -z "$ac_prefix_conf_PKG" ; then
+ as_fn_error $? "no prefix for _PREFIX_PKG_CONFIG_H" "$LINENO" 5
+else
+ if test ! -f "$ac_prefix_conf_INP" ; then if test -f "$srcdir/$ac_prefix_conf_INP" ; then
+ ac_prefix_conf_INP="$srcdir/$ac_prefix_conf_INP"
+ fi fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&5
+$as_echo "$as_me: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&6;}
+ if test -f $ac_prefix_conf_INP ; then
+ echo "s/^#undef *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]\\)/#undef $ac_prefix_conf_UPP""_\\1/" > conftest.prefix
+ echo "s/^#undef *\\([abcdefghijklmnopqrstuvwxyz]\\)/#undef $ac_prefix_conf_LOW""_\\1/" >> conftest.prefix
+ echo "s/^#define *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_UPP""_\\1 \\" >> conftest.prefix
+ echo "#define $ac_prefix_conf_UPP""_\\1 \\2 \\" >> conftest.prefix
+ echo "#endif/" >>conftest.prefix
+ echo "s/^#define *\\([abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_LOW""_\\1 \\" >> conftest.prefix
+ echo "#define $ac_prefix_conf_LOW""_\\1 \\2 \\" >> conftest.prefix
+ echo "#endif/" >> conftest.prefix
+ # now executing _script on _DEF input to create _OUT output file
+ echo "#ifndef $ac_prefix_conf_DEF" >$tmp/pconfig.h
+ echo "#define $ac_prefix_conf_DEF 1" >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h
+
+ sed -f conftest.prefix $ac_prefix_conf_INP >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo '/* once:' $ac_prefix_conf_DEF '*/' >>$tmp/pconfig.h
+ echo "#endif" >>$tmp/pconfig.h
+ if cmp -s $ac_prefix_conf_OUT $tmp/pconfig.h 2>/dev/null; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_prefix_conf_OUT is unchanged" >&5
+$as_echo "$as_me: $ac_prefix_conf_OUT is unchanged" >&6;}
+ else
+ ac_dir=`$as_dirname -- "$ac_prefix_conf_OUT" ||
+$as_expr X"$ac_prefix_conf_OUT" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(//\)[^/]' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(//\)$' \| \
+ X"$ac_prefix_conf_OUT" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_prefix_conf_OUT" |
+ 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
+ rm -f "$ac_prefix_conf_OUT"
+ mv $tmp/pconfig.h "$ac_prefix_conf_OUT"
+ fi
+ cp conftest.prefix _configs.sed
+ else
+ as_fn_error $? "input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" "$LINENO" 5
+ fi
+ rm -f conftest.*
+fi
+ ;;
+ "$ax_create_pkgconfig_generate":C)
+pkgconfig_generate="$ax_create_pkgconfig_generate"
+if test ! -f "$pkgconfig_generate.in"
+then generate="true"
+elif grep ' generated by configure ' $pkgconfig_generate.in >/dev/null
+then generate="true"
+else generate="false";
+fi
+if $generate ; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_generate.in" >&5
+$as_echo "$as_me: creating $pkgconfig_generate.in" >&6;}
+cat > $pkgconfig_generate.in <<AXEOF
+# generated by configure / remove this line to disable regeneration
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+bindir=@bindir@
+libdir=@libdir@
+datarootdir=@datarootdir@
+datadir=@datadir@
+sysconfdir=@sysconfdir@
+includedir=@includedir@
+package=@PACKAGE@
+suffix=@suffix@
+
+Name: @PACKAGE_NAME@
+Description: @PACKAGE_DESCRIPTION@
+Version: @PACKAGE_VERSION@
+Requires: @PACKAGE_REQUIRES@
+Libs: -L\${libdir} @LDFLAGS@ @LIBS@
+Cflags: -I\${includedir} @CPPFLAGS@
+AXEOF
+fi # DONE generate $pkgconfig_generate.in
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_generate" >&5
+$as_echo "$as_me: creating $pkgconfig_generate" >&6;}
+cat >conftest.sed <<AXEOF
+s|@prefix@|${pkgconfig_prefix}|
+s|@exec_prefix@|${pkgconfig_execprefix}|
+s|@bindir@|${pkgconfig_bindir}|
+s|@libdir@|${pkgconfig_libdir}|
+s|@datarootdir@|${pkgconfig_datarootdir}|
+s|@datadir@|${pkgconfig_datadir}|
+s|@sysconfdir@|${pkgconfig_sysconfdir}|
+s|@includedir@|${pkgconfig_includedir}|
+s|@suffix@|${pkgconfig_suffix}|
+s|@PACKAGE@|${pkgconfig_package}|
+s|@PACKAGE_NAME@|${pkgconfig_libname}|
+s|@PACKAGE_DESCRIPTION@|${pkgconfig_description}|
+s|@PACKAGE_VERSION@|${pkgconfig_version}|
+s|@PACKAGE_REQUIRES@|${pkgconfig_requires}|
+s|@LIBS@|${pkgconfig_libs}|
+s|@LDFLAGS@|${pkgconfig_ldflags}|
+s|@CPPFLAGS@|${pkgconfig_cppflags}|
+AXEOF
+sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_generate
+if test ! -s $pkgconfig_generate ; then
+ as_fn_error $? "$pkgconfig_generate is empty" "$LINENO" 5
+fi ; rm conftest.sed # DONE generate $pkgconfig_generate
+pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.pc/'`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_uninstalled" >&5
+$as_echo "$as_me: creating $pkgconfig_uninstalled" >&6;}
+cat >conftest.sed <<AXEOF
+s|@prefix@|${pkgconfig_prefix}|
+s|@exec_prefix@|${pkgconfig_execprefix}|
+s|@bindir@|${pkgconfig_bindir}|
+s|@libdir@|${pkgconfig_src_libdir}|
+s|@datarootdir@|${pkgconfig_datarootdir}|
+s|@datadir@|${pkgconfig_datadir}|
+s|@sysconfdir@|${pkgconfig_sysconfdir}|
+s|@includedir@|${pkgconfig_src_headers}|
+s|@suffix@|${pkgconfig_suffix}|
+s|@PACKAGE@|${pkgconfig_package}|
+s|@PACKAGE_NAME@|${pkgconfig_libname}|
+s|@PACKAGE_DESCRIPTION@|${pkgconfig_description}|
+s|@PACKAGE_VERSION@|${pkgconfig_version}|
+s|@PACKAGE_REQUIRES@|${pkgconfig_requires}|
+s|@LIBS@|${pkgconfig_libs}|
+s|@LDFLAGS@|${pkgconfig_ldflags}|
+s|@CPPFLAGS@|${pkgconfig_cppflags}|
+AXEOF
+sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled
+if test ! -s $pkgconfig_uninstalled ; then
+ as_fn_error $? "$pkgconfig_uninstalled is empty" "$LINENO" 5
+fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled
+ pkgconfig_requires_add=`echo ${pkgconfig_requires}`
+if test ".$pkgconfig_requires_add" != "." ; then
+ pkgconfig_requires_add="pkg-config $pkgconfig_requires_add"
+ else pkgconfig_requires_add=":" ; fi
+pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.sh/'`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_uninstalled" >&5
+$as_echo "$as_me: creating $pkgconfig_uninstalled" >&6;}
+cat >conftest.sed <<AXEOF
+s|@prefix@|\"${pkgconfig_prefix}\"|
+s|@exec_prefix@|\"${pkgconfig_execprefix}\"|
+s|@bindir@|\"${pkgconfig_bindir}\"|
+s|@libdir@|\"${pkgconfig_src_libdir}\"|
+s|@datarootdir@|\"${pkgconfig_datarootdir}\"|
+s|@datadir@|\"${pkgconfig_datadir}\"|
+s|@sysconfdir@|\"${pkgconfig_sysconfdir}\"|
+s|@includedir@|\"${pkgconfig_src_headers}\"|
+s|@suffix@|\"${pkgconfig_suffix}\"|
+s|@PACKAGE@|\"${pkgconfig_package}\"|
+s|@PACKAGE_NAME@|\"${pkgconfig_libname}\"|
+s|@PACKAGE_DESCRIPTION@|\"${pkgconfig_description}\"|
+s|@PACKAGE_VERSION@|\"${pkgconfig_version}\"|
+s|@PACKAGE_REQUIRES@|\"${pkgconfig_requires}\"|
+s|@LIBS@|\"${pkgconfig_libs}\"|
+s|@LDFLAGS@|\"${pkgconfig_ldflags}\"|
+s|@CPPFLAGS@|\"${pkgconfig_cppflags}\"|
+s>Name:>for option\\; do case \"\$option\" in --list-all|--name) echo >
+s>Description: *>\\;\\; --help) pkg-config --help \\; echo Buildscript Of >
+s>Version: *>\\;\\; --modversion|--version) echo >
+s>Requires:>\\;\\; --requires) echo $pkgconfig_requires_add>
+s>Libs: *>\\;\\; --libs) echo >
+s>Cflags: *>\\;\\; --cflags) echo >
+/--libs)/a\\
+ $pkgconfig_requires_add
+/--cflags)/a\\
+ $pkgconfig_requires_add\\
+;; --variable=*) eval echo '\$'\`echo \$option | sed -e 's/.*=//'\`\\
+;; --uninstalled) exit 0 \\
+;; *) ;; esac done
+AXEOF
+sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled
+if test ! -s $pkgconfig_uninstalled ; then
+ as_fn_error $? "$pkgconfig_uninstalled is empty" "$LINENO" 5
+fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled
+ ;;
+
+ 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
+
+# libtool-1.4 specific, on zsh target the final requoting does one too much
+case "$host_os" in
+ darwin*)
+ if grep "1.92" libtool >/dev/null ; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: patching libtool on .so-sharedlib creation (zsh overquoting)" >&5
+$as_echo "patching libtool on .so-sharedlib creation (zsh overquoting)" >&6; }
+ test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool)
+ sed -e '/archive_cmds=/s:[\\][\\][\\]*":\\":g' libtool >libtool.new
+ (test -s libtool.new || rm libtool.new) 2>/dev/null
+ test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !!
+ test -f libtool || mv libtool.old libtool
+ fi
+ ;;
+esac
+
+# patch libtool to fix sys_lib_search_path (e.g. crosscompiling a win32 dll)
+if test "_$PATH_SEPARATOR" = "_:" ; then
+ if grep "^sys_lib_search_path_spec.*:" libtool >/dev/null ; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: patching libtool to fix sys_lib_search_path_spec" >&5
+$as_echo "patching libtool to fix sys_lib_search_path_spec" >&6; }
+ test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool)
+ sed -e "/^sys_lib_search_path_spec/s/:/ /g" libtool >libtool.new
+ (test -s libtool.new || rm libtool.new) 2>/dev/null
+ test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !!
+ test -f libtool || mv libtool.old libtool
+ fi
+fi
+
+# patch libtool to add HOST_CC sometimes needed in crosscompiling a win32 dll
+if grep "HOST_CC" libtool >/dev/null; then
+ if test "$build" != "$host" ; then
+ if test "_$HOST_CC" = "_" ; then
+ HOST_CC="false"
+ for i in `echo $PATH | sed 's,:, ,g'` ; do
+ test -x $i/cc && HOST_CC=$i/cc
+ done
+ fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: patching libtool to add HOST_CC=$HOST_CC" >&5
+$as_echo "patching libtool to add HOST_CC=$HOST_CC" >&6; }
+ test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool)
+ sed -e "/BEGIN.*LIBTOOL.*CONFIG/a\\
+HOST_CC=$HOST_CC" libtool >libtool.new
+ (test -s libtool.new || rm libtool.new) 2>/dev/null
+ test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !!
+ test -f libtool || mv libtool.old libtool
+ fi
+fi
+
+# ---------------------------------------------------------------
+echo '-----' $PACKAGE $VERSION $prefix
+$SHELL libtool --features || true
+echo "CPPFLAGS=$CPPFLAGS"
+echo "CFLAGS=$CFLAGS"
+test "$enable_mmap" != "no" && echo "enable mmap ($enable_mmap)"
+test "$enable_mmap" = "no" && echo "disable mmap ($enable_mmap)"
+test "$with_lowstk" != "no" && echo "with lowstk ($with_lowstk)"
+test "$with_lowstk" = "no" && echo "without lowstk ($with_lowstk)"
+test "$with_debug" != "no" && echo "with debug ($with_debug)"
+test "$with_debug" = "no" && echo "without debug ($with_debug)"
+# test -f ./zziplib.spec && echo warning - do not build in the source dirs
+echo '# make && make check && make install'
diff --git a/Build/source/libs/zziplib/zziplib-src/configure.ac b/Build/source/libs/zziplib/zziplib-src/configure.ac
new file mode 100644
index 00000000000..ff8ae0e2a74
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/configure.ac
@@ -0,0 +1,399 @@
+AC_INIT([zziplib.spec])
+AC_PREREQ(2.61)
+AC_COPYRIGHT([Guido Draheim <guido@gmx.de> for ZZipLib.SF.net])
+AC_REVISION($Revision: 1.15 $)
+AC_CONFIG_AUX_DIR([uses])
+AC_CONFIG_MACRO_DIR([m4])
+# =======================================================================
+AC_CANONICAL_SYSTEM
+dnl AM_ENABLE_MULTILIB([Makefile],[$host])
+dnl AX_ENABLE_BUILDDIR
+AC_SET_DEFAULT_PATHS_SYSTEM
+# -----------------------------------------------------------------------
+AC_ARG_ENABLE([thread-safe],
+AS_HELP_STRING([--disable-thread-safe],[disable thread-safe libtool option])
+ ,,[ enable_thread_safe="yes"])
+THREAD_SAFE=""
+test "$enable_thread_safe" = "yes" && THREAD_SAFE="-thread-safe"
+test "$enable_thread_safe" = "$host_os" && THREAD_SAFE="-thread-safe"
+AC_SUBST(THREAD_SAFE)
+if test -n "$THREAD_SAFE" ; then
+ AC_MSG_RESULT(...using thread-safe linkage)
+else
+ AC_MSG_RESULT(disabled thread-safe linkage)
+fi
+# ----------------------------------------------------------------
+AC_MSG_CHECKING(zlib install prefix)
+AC_ARG_WITH(zlib,
+AS_HELP_STRING([--with-zlib],[zlib prefix (e.g. '$HOME/software')])
+ ,,[with_zlib="no"])
+if test "${with_zlib}" = yes ; then # choose --prefix paths
+ if test "${prefix}" = NONE ; then
+ AC_MSG_RESULT([oops, but only itself...])
+ AC_MSG_ERROR(--with-zlib requires a path argument or a --prefix path set)
+ fi
+ with_zlib="$prefix"
+fi
+
+case ".$with_zlib" in
+ .no|.no,*)
+ AC_MSG_RESULT(none)
+ with_zlib="no, not configured" ;;
+ ./usr)
+ AC_MSG_RESULT([oops, ignored (may try --with-zlib=/usr/.)])
+ with_zlib="no, /usr ignored" ;;
+ *) if test ! -d "$with_zlib/include" ; then
+ AC_MSG_RESULT([oops, given but...])
+ AC_MSG_ERROR("$with_zlib/include" is not a directory)
+ fi
+ if test ! -d "$with_zlib/lib" ; then
+ AC_MSG_RESULT([oops, given but...])
+ AC_MSG_ERROR("$with_zlib/lib" is not a directory)
+ fi
+ AC_MSG_RESULT($with_zlib)
+ ZLIB_INCL="-I$with_zlib/include"
+ ZLIB_LDIR="-L$with_zlib/lib"
+ AC_MSG_RESULT(..adding CPPFLAGS $ZLIB_INCL)
+ AC_MSG_RESULT(..adding LDFLAGS $ZLIB_LDIR)
+ CPPFLAGS="$CPPFLAGS $ZLIB_INCL"
+ LDFLAGS="$LDFLAGS $ZLIB_LDIR"
+ ;;
+esac
+AC_SUBST(ZLIB_INCL)
+AC_SUBST(ZLIB_LDIR)
+# -----------------------------------------------------------------------
+AX_SPEC_DEFAULTS
+AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
+AX_CHECK_ENABLE_DEBUG()
+dnl test ".$CFLAGS" = "." && CFLAGS=""
+AC_PROG_CC
+dnl test ".$CFLAGS" = "." && test "$GCC" = "yes" && CFLAGS="-O3"
+AC_PROG_INSTALL
+AC_LIBTOOL_WIN32_DLL
+AM_PROG_LIBTOOL
+AX_SET_VERSION_INFO
+
+# -----------------------------------------------------------------------
+AC_MSG_RESULT([creating zzip/_msvc.in via zzip/_msvc.sed of config.h.in])
+test -d zzip || mkdir zzip
+sed -f $srcdir/zzip/_msvc.sed $srcdir/config.h.in >zzip/_msvc.in
+AC_CONFIG_HEADERS([config.h])
+AX_PREFIX_CONFIG_H([zzip/_config.h],[zzip],[config.h])
+AX_PREFIX_CONFIG_H([zzip/_msvc.h],[zzip],[zzip/_msvc.in])
+AM_MAINTAINER_MODE
+
+AX_CREATE_PKGCONFIG_INFO(dnl
+[zzip/zziplib.pc], [zzip-zlib-config],[-lzzip],,[ ])
+# -----------------------------------------------------------------------
+AX_PAX_TAR_CREATE
+AX_PAX_TAR_EXTRACT
+AC_PATH_PROGS(PERL, perl5 perl, echo no perl found for)
+AC_PATH_PROGS(PYTHON, python3, echo no python found for)
+AC_PATH_PROGS(MKZIP, zip pkzip, :)
+AC_PATH_PROGS(XMLTO, xmlto, :)
+
+AC_C_INLINE
+AC_C_CONST
+ACX_C_RESTRICT
+AC_STDC_HEADERS
+AC_HEADER_DIRENT
+AC_CHECK_HEADERS(stdint.h unistd.h windows.h winnt.h winbase.h sys/int_types.h)
+AC_CHECK_HEADERS(sys/types.h sys/mman.h sys/stat.h sys/param.h) dnl posix'ish
+AC_CHECK_HEADERS(io.h direct.h zlib.h byteswap.h)
+AC_CHECK_HEADERS(fnmatch.h)
+AC_CHECK_FUNCS( strcasecmp strnlen strndup )
+
+AC_TYPE_OFF_T
+AC_TYPE_SIZE_T
+dnl AC_TYPE_SSIZE_T
+AC_CHECK_TYPE(ssize_t,int)
+AC_CHECK_TYPE(off64_t,_zzip_off_t)
+AC_CHECK_TYPE(__int64,long long)
+if test "xno" = "x$ac_cv_header_stdint_h" ; then
+ AC_COMPILE_CHECK_SIZEOF([short])
+ AC_COMPILE_CHECK_SIZEOF([int])
+ AC_COMPILE_CHECK_SIZEOF([long])
+ AC_COMPILE_CHECK_SIZEOF([int *])
+fi
+AC_C_BIGENDIAN
+AX_CHECK_ALIGNED_ACCESS_REQUIRED
+dnl -------------------------------------------------------------
+# the default is _disabled_!! anyway, result is prefixed in zzip/_config.h!!
+AC_SYS_LARGEFILE_SENSITIVE
+test ".$LARGEFILE_CFLAGS" = "." && LARGEFILE_CFLAGS=""
+AC_ARG_WITH(largefile,AC_HELP_STRING(
+ [--with-largefile],[compile as off64_t instead of 32bit off_t])
+ ,,[with_largefile="no"])
+if test ".$ac_cv_sys_largefile_sensitive" = ".no" ; then
+ AC_MSG_RESULT(compiles library with the only off_t seen)
+elif test ".$with_largefile" != ".no" ; then
+ AC_MSG_RESULT(compiles library as 64bit off_t variant dnl
+- and renaming some function names)
+ LARGEFILE_CFLAGS="$LARGEFILE_CFLAGS -D_LARGEFILE_SOURCE"
+ AC_MSG_RESULT(..adding CFLAGS $LARGEFILE_CFLAGS)
+ CFLAGS="$CFLAGS $LARGEFILE_CFLAGS"
+ AC_MSG_RESULT(..adding 64 into RELEASE_INFO for the libraries)
+ RELEASE_INFO="$RELEASE_INFO-64"
+else
+ AC_MSG_RESULT(compiles library as 32bit off_t variant dnl
+- largefile is not the default here)
+fi
+AC_SUBST(LARGEFILE_CFLAGS)
+dnl -------------------------------------------------------------
+AC_MSG_CHECKING(for zlib being found)
+if test "_$ac_cv_header_zlib_h" != "_yes" ; then
+ AC_MSG_RESULT(dnl
+...oops: zlib.h not found - try adding some CPPFLAGS to configure call)
+ AC_MSG_RESULT(dnl
+...note: and when linkage fails you might also need to set some LDFLAGS)
+ case "$prefix" in
+ NONE|/usr)
+ AC_MSG_RESULT(dnl
+...note: both can be set by specifying the install prefix of the zlib library)
+ AC_MSG_RESULT(dnl
+...note: via --with-zlib=path ... it will test for -Ipath/include -Lpath/lib)
+ ;;
+ *) if test -d $prefix/include ; then
+ AC_MSG_RESULT(dnl
+...note: -I$prefix/include is not added to CPPFLAGS automatically and)
+ AC_MSG_RESULT(dnl
+...note: neither is -L$prefix/lib for LDFLAGS .. both will be if you specify)
+ AC_MSG_RESULT(dnl
+...note: --with-zlib to configure call, or use --with-zlib=installprefix)
+ fi
+ ;;
+ esac
+ AC_MSG_ERROR(zlib.h not found: "zlib" is required to build "$PACKAGE")
+ exit 1
+fi
+cat >conftest.c <<EOF
+#include <zlib.h>
+const char* zlib_VeRsIoN = ZLIB_VERSION "dEtEcT";
+EOF
+ZLIB_VERSION=`(eval "$ac_cpp conftest.c") 2>/dev/null \
+| grep zlib_VeRsIoN | sed -e 's,.*= *.,,' -e 's,. *.dEtEcT.*,,'`
+rm conftest.c
+AC_SUBST(ZLIB_VERSION)
+AC_MSG_RESULT(yes - $ZLIB_VERSION)
+# ----------------------------------------------------------------
+AC_MSG_CHECKING(docdir default)
+AC_ARG_WITH(docdir, AC_HELP_STRING(
+ [--with-docdir],[docdir prefix (prefix/share/doc)])
+ ,,[with_docdir="no"])
+case "${with_docdir}" in
+ prefix/*) docdir=` echo "$withval" | sed 's/^prefix/${prefix}'` ;;
+ datadir/*) docdir=` echo "$withval" | sed 's/^datadir/${datadir}'` ;;
+ yes) docdir='${prefix}/doc' ;;
+ no) docdir='${datadir}/doc' ;;
+ /*|\\*|[a-zA-Z]:*) docdir="$with_docdir" ;;
+ *) AC_MSG_RESULT(oops)
+ AC_MSG_ERROR(bad value ${withval} for --with-docdir)
+ ;;
+esac
+AC_SUBST(docdir)
+AC_MSG_RESULT($docdir)
+# ----------------------------------------------------------------
+AC_MSG_CHECKING(whether using debugging messages in libraries)
+AC_ARG_WITH(debug, AC_HELP_STRING(
+ [--with-debug],[debug messages in library])
+ , [case "${withval}" in
+ yes|no) with_debug="$withval" ;;
+ *) AC_MSG_RESULT(oops)
+ AC_MSG_ERROR(bad value ${withval} for --with-debug) ;;
+ esac], [with_debug="no"])
+test "$with_debug" != "yes" && with_debug="no" # yes or no
+test "$with_debug" = "yes" && export CFLAGS="$CFLAGS -DDEBUG"
+result="$with_debug" ; test "$result" = "yes" && result="yes, added -DDEBUG"
+AC_MSG_RESULT($result)
+if test "$with_debug" = "yes" ; then if test -n "$RELEASE_INFO" ; then
+ RELEASE_INFO="$RELEASE_INFO-dbg"
+ AC_MSG_RESULT(modified release, $RELEASE_INFO)
+fi fi
+# ----------------------------------------------------------------
+AC_MSG_CHECKING(whether thread stack is too small for bufsiz buffers)
+ # many embedded platforms, superthreaded systems and kernel usage
+ # will severely limit the stackspace for its threads. Use _LOWSTK
+ # compile-define on those platforms.
+AC_ARG_WITH(lowstk, AC_HELP_STRING(
+ [--with-lowstk], [limited thread stack])
+ , [case "${withval}" in
+ yes|no|auto) with_lowstk="$withval" ;;
+ *) AC_MSG_ERROR(bad value ${withval} for --with-lowstk) ;;
+ esac], [with_lowstk="auto"])
+if test "$with_lowstk" = "auto"; then
+ case $target in
+ *-palmos-*) $with_lowstk="yes" ;;
+ esac
+fi
+test "$with_lowstk" != "yes" && with_lowstk="no" # yes or no
+test "$with_lowstk" = "yes" && CFLAGS="$CFLAGS -D_LOWSTK"
+result="$with_lowstk" ; test "$result" = "yes" && result="yes, added -D_LOWSTK"
+AC_MSG_RESULT($with_lowstk)
+# ---------------------------------------------------------------
+AC_MSG_CHECKING(whether can use mmap for file scanning)
+ # system with mmap are probably better performing an searching
+ # and parsing - atleast memory consumption is far better
+AC_ARG_ENABLE(mmap, AC_HELP_STRING(
+ [--disable-mmap],[disable mmap usage])
+ , [case "${enableval}" in
+ yes|no|auto) enable_mmap="${enableval}" ;;
+ *) AC_MSG_RESULT(oops)
+ AC_MSG_ERROR(bad value ${enableval} for --disable-mmap) ;;
+ esac], [enable_mmap="auto"])
+if test "$enable_mmap" = "auto"
+then
+ test "$ac_cv_header_winbase_h" && enable_mmap="yes, winbase.h"
+ test "$ac_cv_header_sys_mman_h" && enable_mmap="yes, sys/mman.h"
+fi
+case "$enable_mmap" in
+ yes|yes,*) CFLAGS="$CFLAGS -D_USE_MMAP"
+ AC_MSG_RESULT($enable_mmap, added -D_USE_MMAP) ;;
+ *) enable_mmap="no"
+ AC_MSG_RESULT(no (just a bit slower)) ;;
+esac
+# ---------------------------------------------------------------
+PKG_PROG_PKG_CONFIG
+AC_MSG_CHECKING(whether making SDL parts)
+SDL=""
+SDL_GENERATE=""
+AC_ARG_ENABLE(sdl, AC_HELP_STRING(
+ [--enable-sdl],[enable SDL usage (if present)])
+ ,,[enable_sdl="no"])
+if test "$enable_sdl" = "no" ; then
+ AC_MSG_RESULT([no, disabled])
+else
+ enable_sdl1=`$PKG_CONFIG --modversion sdl 2>/dev/null`
+ if test -z "$enable_sdl1"; then
+ enable_sdl2=`$PKG_CONFIG --modversion sdl2 2>/dev/null`
+ if test -z "$enable_sdl2"; then
+ enable_sdl3=`sdl-config --version 2>/dev/null`
+ SDL_GENERATE="sdl-uninstalled.pc"
+ enable_sdl="$enable_sdl3 (sdl-config)"
+ else
+ enable_sdl="$enable_sdl2 (pkgconfig sdl2)"
+ fi
+ else
+ enable_sdl="$enable_sdl1 (pkgconfig sdl)"
+ fi
+ enable_sdl="$enable_sdl."
+ case ".$enable_sdl" in
+ .1.*) AC_MSG_RESULT([yes, using SDL $enable_sdl])
+ SDL="SDL" ;;
+ .2.*) AC_MSG_RESULT([yes, untested $enable_sdl])
+ SDL="SDL" ;;
+ *) AC_MSG_RESULT([no, $enable_sdl]) ;;
+ esac
+ if test -n "$SDL_GENERATE"; then
+ AC_MSG_RESULT([enabled SDL generation of... $SDL_GENERATE])
+ fi
+fi
+AC_SUBST([SDL])
+AC_SUBST([SDL_GENERATE])
+
+# ----------------------------------------------------------------
+AC_MSG_CHECKING(whether using address sanitizer)
+AC_ARG_WITH(asan, AC_HELP_STRING(
+ [--with-asan],[compile with adress sanitizer])
+ , [case "${withval}" in
+ yes|no) with_asan="$withval" ;;
+ *) AC_MSG_RESULT(oops)
+ AC_MSG_ERROR(bad value ${withval} for --with-asan) ;;
+ esac], [with_asan="no"])
+ASAN_LIBS=""
+ASAN_CFLAGS=""
+if test ".$with_asan" = ".yes" ; then
+ ASAN_LIBS="-lasan"
+ ASAN_CFLAGS="-fsanitize=address"
+fi
+AC_MSG_RESULT([$with_asan, $ASAN_CFLAGS])
+AC_SUBST([ASAN_LIBS])
+AC_SUBST([ASAN_CFLAGS])
+# ---------------------------------------------------------------
+AC_MSG_CHECKING(running extra tests on make check)
+if test "MKZIP" != ":" ; then
+ AC_MSG_RESULT(yes)
+ ZIPTESTS=""
+else
+ AC_MSG_RESULT(no)
+ ZIPTESTS="#"
+fi
+AC_SUBST(ZIPTESTS)
+# ---------------------------------------------------------------
+AC_MSG_CHECKING([link options])
+ZZIPLIB_LDFLAGS=""
+case "$host_os" in mingw*)
+ # we may assume that the backend is gnu-ld but DLLs need full resolution
+ ZZIPLIB_LDFLAGS="${wl}-no-undefined ${wl}-export-all-symbols -mconsole"
+ RESOLVES=' '
+;; darwin*)
+ # darwin never uses gnu-ld but the linker can do it anyway
+ ZZIPLIB_LDFLAGS="-export-dynamic"
+ RESOLVES=" # "
+;; *)
+ if test ".$can_build_shared" != ".no" ; then
+ ZZIPLIB_LDFLAGS="-export-dynamic"
+ if test ".$lt_cv_prog_gnu_ld" == ".yes" ; then
+ ZZIPLIB_LDFLAGS="${wl}--export-dynamic"
+ # TODO: that is for backward compatibility only
+ fi
+ fi
+ RESOLVES=" # "
+;; esac
+AC_MSG_RESULT([$ZZIPLIB_LDFLAGS $RESOLVES])
+AC_SUBST([ZZIPLIB_LDFLAGS])
+AC_SUBST([RESOLVES])
+AC_ARG_WITH([defines],
+AS_HELP_STRING([--with-defines],[easy,harden,allow_modulo_entries]),
+ ,[with_defines="normal"])
+
+#
+case ",$with_defines," in *,easy,*)
+ AC_MSG_RESULT([..adding CFLAGS -DZZIP_EASY])
+ CFLAGS="$CFLAGS -DZZIP_EASY"
+;; esac
+case ",$with_defines," in *,harden,*)
+ AC_MSG_RESULT([..adding CFLAGS -DZZIP_HARDEN])
+ CFLAGS="$CFLAGS -DZZIP_HARDEN"
+;; esac
+case ",$with_defines," in *,allow_modulo_entries,*)
+ AC_MSG_RESULT([..adding CFLAGS -DZZIP_ALLOW_MODULO_ENTRIES])
+ CFLAGS="$CFLAGS -DZZIP_ALLOW_MODULO_ENTRIES"
+;; esac
+
+# ---------------------------------------------------------------
+AX_MAINTAINER_MODE_AUTO_SILENT
+AX_NOT_ENABLE_FRAME_POINTER
+AX_CFLAGS_WARN_ALL
+AX_CFLAGS_GCC_OPTION(-Wpointer-arith)
+AX_CFLAGS_GCC_OPTION(-Wsign-compare)
+AX_CFLAGS_GCC_OPTION(-Wmissing-declarations)
+AX_CFLAGS_GCC_OPTION(-Wdeclaration-after-statement)
+AX_CFLAGS_GCC_OPTION(-Werror-implicit-function-declaration)
+AX_CFLAGS_GCC_OPTION(-Wstrict-aliasing)
+AX_CFLAGS_GCC_OPTION(-Warray-bounds)
+AX_CFLAGS_NO_WRITABLE_STRINGS
+AX_CFLAGS_STRICT_PROTOTYPES
+# ---------------------------------------------------------------
+AX_ENABLE_DEFAULT_PKGCONFIGDIR
+AX_ENABLE_DEFAULT_ACLOCALDIR
+AC_SUBST([CONFIG_FILES])
+AC_OUTPUT([Makefile
+ zzip/Makefile zzipwrap/Makefile SDL/Makefile
+ docs/Makefile test/Makefile bins/Makefile])
+dnl -------------------------------------------------------------
+PATCH_LIBTOOL_ON_DARWIN_ZSH_OVERQUOTING
+PATCH_LIBTOOL_SYS_LIB_SEARCH_PATH_SPEC
+PATCH_LIBTOOL_TO_ADD_HOST_CC
+# ---------------------------------------------------------------
+echo '-----' $PACKAGE $VERSION $prefix
+$SHELL libtool --features || true
+echo "CPPFLAGS=$CPPFLAGS"
+echo "CFLAGS=$CFLAGS"
+test "$enable_mmap" != "no" && echo "enable mmap ($enable_mmap)"
+test "$enable_mmap" = "no" && echo "disable mmap ($enable_mmap)"
+test "$with_lowstk" != "no" && echo "with lowstk ($with_lowstk)"
+test "$with_lowstk" = "no" && echo "without lowstk ($with_lowstk)"
+test "$with_debug" != "no" && echo "with debug ($with_debug)"
+test "$with_debug" = "no" && echo "without debug ($with_debug)"
+# test -f ./zziplib.spec && echo warning - do not build in the source dirs
+echo '# make && make check && make install'
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/64on32.htm b/Build/source/libs/zziplib/zziplib-src/docs/64on32.htm
new file mode 100644
index 00000000000..4da84140d5c
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/64on32.htm
@@ -0,0 +1,195 @@
+<section> <date> 13. Aug 2003 </date>
+<h2> 64on32 largefile information </h2>
+
+<section><!--border-->
+<h3> largefile problems </h3>
+
+<P>
+ Through actual problems with handling files larger than 2 Gigabyte,
+ I had to face the fact that there are serious problems with the
+ largefile implementation around shared-libraries. This is bound
+ to the effect that 64on32 platforms allow a preprocessor #define
+ _FILE_OFFSET_BITS=64 which will shift the integretal type of
+ off_t from a 32bit to a 64bit entity.
+</P>
+
+<P>
+ That will in fact lead to problems if an application is compiled
+ with a different off_t size than the shared-library it will be
+ linked to. Among the problems are different sizes of the callframe
+ for those functions that take an argument of off_t type. Note how
+ the "seek" call uses an off_t in the middle of its arguments which
+ may be 32bit or 64bit depending on a preprocessor define. And
+ you know that zziplib wraps up "seek"-like calls as well.
+</P>
+
+<P>
+ The observations were largely made independent of the zziplib
+ however, as a zip-file does uses 32bit offsets in its header
+ fields anyway, and therefore a single zip-archive (or any of
+ its wrapped files) can not be larger than 2 Gigabyte anyway.
+ I would to refer you for deeper information to my website
+ about this problem-space at
+</P>
+<p><center><big>
+ <a href="http://ac-archive.sf.net/largefile" remap="url">
+ ac-archive.sf.net/largefile </a>
+</big></center></p>
+
+</section><section>
+<h3> zziplib related </h3>
+
+<P>
+ Still however the problems hold for zziplib usage when
+ the functions are linked dynamically as a shared-library.
+ Here we can face the fact that an application (or a higher
+ level library) uses a different off_t size than the
+ underlying zziplib shared-library.
+</P>
+
+<P>
+ If you read the <code>zzip/zzip.h</code> header file then
+ you will surely see a number of off_t usages around, here
+ they are wrapped in the form of zzip_off_t to get away with
+ platforms not predefining off_t in the first place. Those
+ functions are (at the time of writing):
+<blockquote><ul>
+<li> <code>zzip_telldir</code> (return type) </li>
+<li> <code>zzip_seekdir</code> (second param) </li>
+<li> <code>zzip_tell</code> (return type) </li>
+<li> <code>zzip_seek</code> (second param of three)</li>
+</ul></blockquote>
+</P>
+
+<P>
+ What might be not as obvious however: you will find
+ also the off_t type being used in the plugin-handlers
+ callback functions. That is based on the fact that
+ the plugin-structures is filled by default with the
+ posix-functions from the C library. A 64on32 platform
+ however offers quite usually a mixedmode C library
+ exporting two symbols for tell/seek calls to match
+ either 32bit off_t or 64bit off_t
+<blockquote><ul>
+<li> <code>zzip_plugin_io->seeks</code> (return type and second param) </li>
+<li> <code>zzip_plugin_io->filesize</code> (return type) </li>
+</ul></blockquote>
+</P>
+
+<P>
+ The problem here: the application might not make use of
+ zzip_seek/zzip_tell explicitly, but may be the internal
+ implementation of a zzip call uses io->seeks or io->filesize.
+ When an application uses plugin-io with these callbacks
+ overridden then surely problems will arise.
+</P>
+
+</section><section>
+<h3> zziplib mixedmode option </h3>
+
+<P>
+ I have extended the zziplib implementation to allow itself to
+ live fine on 64on32 systems. The 64on32 system are like linux
+ and solaris where the default off_t is 32bit and only by the
+ preprocessor hint they shift into 64bit. The C library on
+ these systems is a mixedmode one offering a pair for each of
+ the problematic functions - lseek <em>and</em> lseek64 for
+ example.
+</P>
+
+<P>
+ The zziplib header file detects when it is present on a
+ 64on32 system (through hints in configured zzip/conf.h)
+ and that _FILE_OFFSET_BITS has been set to 64bit. In that
+ case it does automatically issue #defines that shift the
+ symbol-name from zzip_seek into zzip_seek64. Likewise,
+ <em>all</em> the *_ext_io functions are renamed into
+ *_ext_io64 calls
+</P>
+
+<P>
+ The zziplib library itself will also pick up the renamings
+ when it is compiled with 64bit off_t - in effect an application
+ with a 64bit-off_t dependency can only link with a zziplib
+ compiled in 64bit-off_t mode. If the application does not
+ use any call symbol with an off_t dependency then it does
+ not matter and the link will succeed. That's simply because
+ function calls without an off_t dependency will not be
+ renamed and they are the same for a 32bit-off_t zziplib or
+ a 64bit-off_t zziplib.
+</P>
+
+<P>
+ As an extra, the zziplib exports a few of its common calls
+ like being a mixedmode library when you compile it both in
+ 64bit mode and as a shared library. In that case, the
+ resulting shared library will export symbol pairs for the
+ calls with an off_t dependency, i.e. both zzip_seek and
+ zzip_seek64 are present.
+</P>
+
+<P>
+ Note that for reasons of being a lightweight library, the
+ zziplib library does not export mixmode call pairs for
+ the *_ext_io family of functions. The current generation
+ of zziplib does call io->seeks unconditionally of any
+ case'ing flag and so far there are no problems with the
+ current design.
+</P>
+
+</section><section>
+<h3> Implementation details </h3>
+
+<P>
+ In the header file zzip/zzip.h you will find the define
+ ZZIP_LARGEFILE_RENAME which triggers the renaming process.
+ See zzip/conf.h on the conditions where it is being triggered.
+</P>
+
+<P>
+ For the implementation of the mixedmode symbol pairs, see
+ zzip/dir.c for an example for the zzip_seekdir/zzip_seekdir64
+ pair - here we use libtools -DPIC to detect the situation of
+ being compiled as shared-library, we use the preprocessor
+ #def ZZIP_LARGEFILE_RENAME to know we are on a 64on32
+ system compiled in 64bit-off_t, and we check the transitional
+ largefile API to be present by looking for EOVERFLOW errno.
+</P>
+
+<P>
+ When all the three are present then we simply #undef the
+ renaming preprocessor macro and define a function symbol
+ (without the renaming) and call the renamed symbol
+ already compiled a few lines before. We use the pre-off_t
+ type "long" for the 32bit entity of these calls. While
+ we mostly let the compiler do the shrink/expand of these
+ integer types, we do also sometimes check for overflows
+ of the seekvalue.
+</P>
+
+</section><section>
+<h3> rpm extras and pkg-config </h3>
+
+<P>
+ The provided .spec file shows how to compile both variants
+ of the zziplib shared library and to install them in
+ parallel in the system. Also we provide doubled sets
+ of .pc files for pkg-config installation. That should make
+ it a lot easier for applications to link to the correct
+ library they want.
+</P>
+
+<P>
+ Here are all the variants that you can find after installing
+ the vanilla rpm files from zziplib.sf.net:
+<pre>
+$ pkg-config --list-all | sort | grep zzip
+zziplib32 zziplib32 - ZZipLib - libZ-based ZIP-access Library
+zziplib64 zziplib64 - ZZipLib - libZ-based ZIP-access Library
+zziplib zziplib - ZZipLib - libZ-based ZIP-access Library
+zzip-sdl-config zzip-sdl-config - SDL Config (for ZZipLib)
+zzip-sdl-rwops zzip-sdl-rwops - SDL_rwops for ZZipLib
+zzipwrap zzipwrap - Callback Wrappers for ZZipLib
+zzip-zlib-config zzip-zlib-config - ZLib Config (for ZZipLib)
+</pre></P>
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/CMakeLists.txt b/Build/source/libs/zziplib/zziplib-src/docs/CMakeLists.txt
new file mode 100644
index 00000000000..442e877f14b
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/CMakeLists.txt
@@ -0,0 +1,180 @@
+cmake_minimum_required (VERSION 3.1)
+project(zzipbins VERSION "0.13.71" LANGUAGES C)
+
+include ( GNUInstallDirs )
+include ( FindPkgConfig )
+
+# options ########################################################
+option(BUILD_SHARED_LIBS "Build a shared library" ON)
+option(BUILD_STATIC_LIBS "Build the static library" OFF)
+option(BUILD_TESTS "Build test programs" OFF)
+option(MSVC_STATIC_RUNTIME "Build with static runtime libs (/MT)" ON)
+
+# Zlib library needed
+find_package ( ZLIB REQUIRED )
+# pkg_search_module ( ZZIP zzip )
+find_package(PythonInterp 3.5 REQUIRED)
+find_package(UnixCommands REQUIRED) # bash cp mv rm gzip tar
+find_program(XMLTO xmlto)
+
+set(EXEEXT ${CMAKE_EXECUTABLE_SUFFIX})
+set(README ${CMAKE_SOURCE_DIR}/README)
+
+set(topdir ${CMAKE_SOURCE_DIR})
+set(srcdir ${CMAKE_CURRENT_SOURCE_DIR})
+set(outdir ${CMAKE_CURRENT_BINARY_DIR})
+set(PY ${PYTHON_EXECUTABLE})
+
+set(mandir ${CMAKE_INSTALL_FULL_MANDIR})
+set(docdir ${CMAKE_INSTALL_FULL_DOCDIR})
+
+set(bins ${CMAKE_SOURCE_DIR}/bins)
+set(SDLs ${CMAKE_SOURCE_DIR}/SDL)
+
+# targets ########################################################
+set(doc_FILES README.MSVC6 README.SDL COPYING.MPL COPYING.LIB COPYING.ZLIB
+ zziplib.html zzipmmapped.html zzipfseeko.html)
+set(htm_FILES zzip-index.htm zzip-zip.htm zzip-file.htm zzip-sdl-rwops.htm
+ zzip-extio.htm zzip-xor.htm zzip-crypt.htm zzip-cryptoid.htm
+ zzip-api.htm zzip-basics.htm zzip-extras.htm zzip-parse.htm
+ 64on32.htm future.htm fseeko.htm mmapped.htm memdisk.htm
+ configs.htm sfx-make.htm developer.htm download.htm
+ history.htm referentials.htm faq.htm copying.htm notes.htm
+ functions.htm zip-php.htm)
+set(bins_FILES ${bins}/zzdir.c ${bins}/zzcat.c ${bins}/zzobfuscated.c ${bins}/zziptest.c ${bins}/zzxordir.c ${bins}/zzxorcat.c ${bins}/zzxorcopy.c )
+set(SDLs_FILES ${SDLs}/SDL_rwops_zzcat.c ${SDLs}/SDL_rwops_zzip.c ${SDLs}/SDL_rwops_zzip.h )
+set(zzipdoc_FILES makedocs.py zzipdoc/__init__.py
+ zzipdoc/commentmarkup.py zzipdoc/match.py
+ zzipdoc/dbk2htm.py zzipdoc/htm2dbk.py
+ zzipdoc/functionheader.py zzipdoc/options.py
+ zzipdoc/functionlisthtmlpage.py zzipdoc/textfileheader.py
+ zzipdoc/functionlistreference.py zzipdoc/textfile.py
+ zzipdoc/functionprototype.py zzipdoc/htmldocument.py
+ zzipdoc/docbookdocument.py)
+
+add_custom_command(OUTPUT changes.htm
+ COMMAND ${BASH} -c "E=changes.htm \
+ ; echo '<pre>' > $E ; cat ${topdir}/ChangeLog \
+ | sed -e 's,\\&,\\&amp\\;,g' \
+ -e 's,<,\\&lt\\;,g' -e 's,>,\\&gt\\;,g' \
+ -e '/^[A-Z].*[12][09][09][09]/s,\\(.*\\),<b>&</b>,' \
+ -e '/^[0-9]/s,\\(.*\\),<b>&</b>,' >> $E ; echo '</pre>' >>$E"
+ DEPENDS ${topdir}/ChangeLog
+ VERBATIM)
+
+set(mksite_sh_args --VERSION=${PROJECT_VERSION} --xml --src-dir=${srcdir} --print)
+add_custom_command(OUTPUT site.html
+ COMMAND ${CP} ${srcdir}/body.htm site.htm
+ COMMAND ${BASH} ${srcdir}/mksite.sh ${mksite_sh_args} site.htm
+ COMMAND ${BASH} -c "for i in *.html; do sed -i -e s:${srcdir}:../../docs: $i; done; true"
+ DEPENDS ${htm_FILES} changes.htm
+ VERBATIM)
+add_custom_target(site DEPENDS site.html)
+
+add_custom_command(OUTPUT zzip.xml
+ COMMAND ${PY} ${srcdir}/zzipdoc/htm2dbk.py ${htm_FILES} zziplib.xml -o ${outdir}/zzip.xml
+ DEPENDS zziplib.xml ${htm_FILES}
+ WORKING_DIRECTORY ${srcdir}
+ VERBATIM)
+add_custom_target(dbk DEPENDS zzip.xml)
+
+if(XMLTO)
+add_custom_command(OUTPUT zzip.html
+ COMMAND ${XMLTO} html-nochunks zzip.xml
+ DEPENDS zzip.xml
+ VERBATIM)
+add_custom_command(OUTPUT zzip.pdf
+ COMMAND ${XMLTO} pdf zzip.xml
+ DEPENDS zzip.xml
+ VERBATIM)
+add_custom_target(pdf DEPENDS zzip.pdf)
+endif()
+
+set(docinfo --package=zziplib --version=${PROJECT_VERSION})
+file(GLOB zzip_sources "${topdir}/zzip/*.c")
+add_custom_command(OUTPUT zziplib.xml
+ COMMAND ${PY} ${srcdir}/makedocs.py ${zzip_sources} ${docinfo} --onlymainheader=zzip/lib.h --output=zziplib
+ COMMAND ${MV} zziplib.docbook zziplib.xml
+ DEPENDS libzzip
+ BYPRODUCTS zziplib.html
+ VERBATIM)
+add_custom_command(OUTPUT zzipmmapped.xml
+ COMMAND ${PY} ${srcdir}/makedocs.py ${zzip_sources} ${docinfo} --onlymainheader=zzip/mmapped.h --output=zzipmmapped
+ COMMAND ${MV} zzipmmapped.docbook zzipmmapped.xml
+ DEPENDS libzzipmmapped
+ BYPRODUCTS zzipmmapped.html
+ VERBATIM)
+add_custom_command(OUTPUT zzipfseeko.xml
+ COMMAND ${PY} ${srcdir}/makedocs.py ${zzip_sources} ${docinfo} --onlymainheader=zzip/fseeko.h --output=zzipfseeko
+ COMMAND ${MV} zzipfseeko.docbook zzipfseeko.xml
+ DEPENDS libzzipfseeko
+ BYPRODUCTS zzipfseeko.html
+ VERBATIM)
+add_custom_command(OUTPUT manpages.tar
+ COMMAND ${BASH} -c "test -d man3 && rm -rf man3; mkdir man3"
+ COMMAND ${PY} ${srcdir}/dbk2man.py -o man3 man zziplib.xml
+ COMMAND ${PY} ${srcdir}/dbk2man.py -o man3 man zzipmmapped.xml
+ COMMAND ${PY} ${srcdir}/dbk2man.py -o man3 man zzipfseeko.xml
+ COMMAND ${BASH} -c "test -d man3/man3 && mv man3 man3_; test -d man3_/man3 && mv man3_/man3 .; rm -rf man3_"
+ COMMAND ${BASH} -c "chmod 664 man3/*.3"
+ COMMAND ${BASH} -c "tar cf manpages.tar man3"
+ COMMAND ${BASH} -c "ls -l `pwd`/manpages.tar `pwd`/htmpages.tar >&2 || true"
+ DEPENDS zziplib.xml zzipmmapped.xml zzipfseeko.xml
+ VERBATIM)
+add_custom_command(OUTPUT htmpages.tar
+ COMMAND ${BASH} -c "test -d html && rm -rf html; mkdir html"
+ COMMAND ${PY} ${srcdir}/dbk2man.py -o html html zziplib.xml
+ COMMAND ${PY} ${srcdir}/dbk2man.py -o html html zzipmmapped.xml
+ COMMAND ${PY} ${srcdir}/dbk2man.py -o html html zzipfseeko.xml
+ COMMAND ${PY} ${srcdir}/dir2index.py -o html html
+ COMMAND ${BASH} -c "tar cf htmpages.tar html/*.*"
+ COMMAND ${BASH} -c "ls -l `pwd`/htmpages.tar `pwd`/manpages.tar >&2 || true"
+ DEPENDS zziplib.xml zzipmmapped.xml zzipfseeko.xml
+ VERBATIM)
+
+add_custom_target(mans DEPENDS manpages)
+add_custom_target(man DEPENDS manpages)
+add_custom_target(htm DEPENDS htmpages)
+add_custom_target(manpages DEPENDS manpages.tar)
+add_custom_target(htmpages DEPENDS htmpages.tar)
+add_custom_target(doc DEPENDS zziplib.xml zzipmmapped.xml zzipfseeko.xml site.html)
+add_custom_target(docs DEPENDS doc manpages htmpages)
+
+
+string(REPLACE ";" " " all_bins_FILES "${bins_FILES}")
+string(REPLACE ";" " " all_SDLs_FILES "${SDLs_FILES}")
+add_custom_target(install-site
+ COMMAND ${BASH} -c "ls -l ${CMAKE_CURRENT_BINARY_DIR}/site.html"
+ COMMAND ${BASH} -c "mkdir -vp $(DESTDIR)${docdir} >&2 || ls -ld $(DESTDIR)${docdir} >&2"
+ COMMAND ${BASH} -c "cd ${outdir} && cp zziplib.html zzipmmapped.html zzipfseeko.html $(DESTDIR)${docdir}/"
+ COMMAND ${BASH} -c "cd ${srcdir} && cp README.* COPYING.* $(DESTDIR)${docdir}/"
+ COMMAND ${BASH} -c "cd ${topdir} && cp ChangeLog $(DESTDIR)${docdir}/"
+ COMMAND ${BASH} -c "cd ${topdir} && cp ${all_bins_FILES} $(DESTDIR)${docdir}/"
+ COMMAND ${BASH} -c "cd ${topdir} && cp ${all_SDLs_FILES} $(DESTDIR)${docdir}/"
+ COMMAND ${BASH} -c "cd $(DESTDIR)${docdir} && cp ${outdir}/*.html ."
+ COMMAND ${BASH} -c "cd $(DESTDIR)${docdir} && ln -s zzip-index.html index.html"
+ DEPENDS site.html zziplib.html zzipmmapped.html zzipfseeko.html
+ VERBATIM)
+add_custom_target(install-htmpages
+ COMMAND ${BASH} -c "ls -l ${CMAKE_CURRENT_BINARY_DIR}/*pages.tar"
+ COMMAND ${BASH} -c "mkdir -vp $(DESTDIR)${docdir} >&2 || ls -ld $(DESTDIR)${docdir} >&2"
+ COMMAND ${BASH} -c "cd $(DESTDIR)${docdir} && tar x -f ${outdir}/htmpages.tar"
+ COMMAND ${BASH} -c "cd $(DESTDIR)${docdir} && mv html man"
+ DEPENDS htmpages.tar
+ VERBATIM)
+add_custom_target(install-manpages
+ COMMAND ${BASH} -c "ls -l ${CMAKE_CURRENT_BINARY_DIR}/*pages.tar"
+ COMMAND ${BASH} -c "mkdir -vp $(DESTDIR)${mandir} >&2 || ls -ld $(DESTDIR)${mandir} >&2"
+ COMMAND ${BASH} -c "cd $(DESTDIR)${mandir} && tar xf ${outdir}/manpages.tar"
+ DEPENDS manpages.tar
+ VERBATIM)
+add_custom_target(install-docs DEPENDS install-manpages install-htmpages install-site)
+add_custom_target(install-mans DEPENDS install-manpages)
+add_custom_target(install-man DEPENDS install-manpages)
+
+# install ########################################################
+set(mandir ${CMAKE_INSTALL_FULL_MANDIR})
+install(CODE "execute_process(COMMAND ${BASH} -c \"set -e
+ mkdir -vp $DESTDIR/${mandir} || ls -ld $DESTDIR/${mandir}
+ cd $DESTDIR/${mandir} && tar xf ${CMAKE_CURRENT_BINARY_DIR}/manpages.tar
+ \")")
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/COPYING.LIB b/Build/source/libs/zziplib/zziplib-src/docs/COPYING.LIB
new file mode 100644
index 00000000000..eb685a5ec98
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/COPYING.LIB
@@ -0,0 +1,481 @@
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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.
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/COPYING.MPL b/Build/source/libs/zziplib/zziplib-src/docs/COPYING.MPL
new file mode 100644
index 00000000000..18f8109b797
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/COPYING.MPL
@@ -0,0 +1,567 @@
+ MOZILLA PUBLIC LICENSE
+ Version 1.1
+
+ ---------------
+
+1. Definitions.
+
+ 1.0.1. "Commercial Use" means distribution or otherwise making the
+ Covered Code available to a third party.
+
+ 1.1. "Contributor" means each entity that creates or contributes to
+ the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the Original
+ Code, prior Modifications used by a Contributor, and the Modifications
+ made by that particular Contributor.
+
+ 1.3. "Covered Code" means the Original Code or Modifications or the
+ combination of the Original Code and Modifications, in each case
+ including portions thereof.
+
+ 1.4. "Electronic Distribution Mechanism" means a mechanism generally
+ accepted in the software development community for the electronic
+ transfer of data.
+
+ 1.5. "Executable" means Covered Code in any form other than Source
+ Code.
+
+ 1.6. "Initial Developer" means the individual or entity identified
+ as the Initial Developer in the Source Code notice required by Exhibit
+ A.
+
+ 1.7. "Larger Work" means a work which combines Covered Code or
+ portions thereof with code not governed by the terms of this License.
+
+ 1.8. "License" means this document.
+
+ 1.8.1. "Licensable" means having the right to grant, to the maximum
+ extent possible, whether at the time of the initial grant or
+ subsequently acquired, any and all of the rights conveyed herein.
+
+ 1.9. "Modifications" means any addition to or deletion from the
+ substance or structure of either the Original Code or any previous
+ Modifications. When Covered Code is released as a series of files, a
+ Modification is:
+ A. Any addition to or deletion from the contents of a file
+ containing Original Code or previous Modifications.
+
+ B. Any new file that contains any part of the Original Code or
+ previous Modifications.
+
+ 1.10. "Original Code" means Source Code of computer software code
+ which is described in the Source Code notice required by Exhibit A as
+ Original Code, and which, at the time of its release under this
+ License is not already Covered Code governed by this License.
+
+ 1.10.1. "Patent Claims" means any patent claim(s), now owned or
+ hereafter acquired, including without limitation, method, process,
+ and apparatus claims, in any patent Licensable by grantor.
+
+ 1.11. "Source Code" means the preferred form of the Covered Code for
+ making modifications to it, including all modules it contains, plus
+ any associated interface definition files, scripts used to control
+ compilation and installation of an Executable, or source code
+ differential comparisons against either the Original Code or another
+ well known, available Covered Code of the Contributor's choice. The
+ Source Code can be in a compressed or archival form, provided the
+ appropriate decompression or de-archiving software is widely available
+ for no charge.
+
+ 1.12. "You" (or "Your") means an individual or a legal entity
+ exercising rights under, and complying with all of the terms of, this
+ License or a future version of this License issued under Section 6.1.
+ For legal entities, "You" includes any entity which controls, is
+ controlled by, or is under common control with You. For purposes of
+ this definition, "control" means (a) the power, direct or indirect,
+ to cause the direction or management of such entity, whether by
+ contract or otherwise, or (b) ownership of more than fifty percent
+ (50%) of the outstanding shares or beneficial ownership of such
+ entity.
+
+2. Source Code License.
+
+ 2.1. The Initial Developer Grant.
+ The Initial Developer hereby grants You a world-wide, royalty-free,
+ non-exclusive license, subject to third party intellectual property
+ claims:
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Initial Developer to use, reproduce,
+ modify, display, perform, sublicense and distribute the Original
+ Code (or portions thereof) with or without Modifications, and/or
+ as part of a Larger Work; and
+
+ (b) under Patents Claims infringed by the making, using or
+ selling of Original Code, to make, have made, use, practice,
+ sell, and offer for sale, and/or otherwise dispose of the
+ Original Code (or portions thereof).
+
+ (c) the licenses granted in this Section 2.1(a) and (b) are
+ effective on the date Initial Developer first distributes
+ Original Code under the terms of this License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is
+ granted: 1) for code that You delete from the Original Code; 2)
+ separate from the Original Code; or 3) for infringements caused
+ by: i) the modification of the Original Code or ii) the
+ combination of the Original Code with other software or devices.
+
+ 2.2. Contributor Grant.
+ Subject to third party intellectual property claims, each Contributor
+ hereby grants You a world-wide, royalty-free, non-exclusive license
+
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Contributor, to use, reproduce, modify,
+ display, perform, sublicense and distribute the Modifications
+ created by such Contributor (or portions thereof) either on an
+ unmodified basis, with other Modifications, as Covered Code
+ and/or as part of a Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or
+ selling of Modifications made by that Contributor either alone
+ and/or in combination with its Contributor Version (or portions
+ of such combination), to make, use, sell, offer for sale, have
+ made, and/or otherwise dispose of: 1) Modifications made by that
+ Contributor (or portions thereof); and 2) the combination of
+ Modifications made by that Contributor with its Contributor
+ Version (or portions of such combination).
+
+ (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+ effective on the date Contributor first makes Commercial Use of
+ the Covered Code.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is
+ granted: 1) for any code that Contributor has deleted from the
+ Contributor Version; 2) separate from the Contributor Version;
+ 3) for infringements caused by: i) third party modifications of
+ Contributor Version or ii) the combination of Modifications made
+ by that Contributor with other software (except as part of the
+ Contributor Version) or other devices; or 4) under Patent Claims
+ infringed by Covered Code in the absence of Modifications made by
+ that Contributor.
+
+3. Distribution Obligations.
+
+ 3.1. Application of License.
+ The Modifications which You create or to which You contribute are
+ governed by the terms of this License, including without limitation
+ Section 2.2. The Source Code version of Covered Code may be
+ distributed only under the terms of this License or a future version
+ of this License released under Section 6.1, and You must include a
+ copy of this License with every copy of the Source Code You
+ distribute. You may not offer or impose any terms on any Source Code
+ version that alters or restricts the applicable version of this
+ License or the recipients' rights hereunder. However, You may include
+ an additional document offering the additional rights described in
+ Section 3.5.
+
+ 3.2. Availability of Source Code.
+ Any Modification which You create or to which You contribute must be
+ made available in Source Code form under the terms of this License
+ either on the same media as an Executable version or via an accepted
+ Electronic Distribution Mechanism to anyone to whom you made an
+ Executable version available; and if made available via Electronic
+ Distribution Mechanism, must remain available for at least twelve (12)
+ months after the date it initially became available, or at least six
+ (6) months after a subsequent version of that particular Modification
+ has been made available to such recipients. You are responsible for
+ ensuring that the Source Code version remains available even if the
+ Electronic Distribution Mechanism is maintained by a third party.
+
+ 3.3. Description of Modifications.
+ You must cause all Covered Code to which You contribute to contain a
+ file documenting the changes You made to create that Covered Code and
+ the date of any change. You must include a prominent statement that
+ the Modification is derived, directly or indirectly, from Original
+ Code provided by the Initial Developer and including the name of the
+ Initial Developer in (a) the Source Code, and (b) in any notice in an
+ Executable version or related documentation in which You describe the
+ origin or ownership of the Covered Code.
+
+ 3.4. Intellectual Property Matters
+ (a) Third Party Claims.
+ If Contributor has knowledge that a license under a third party's
+ intellectual property rights is required to exercise the rights
+ granted by such Contributor under Sections 2.1 or 2.2,
+ Contributor must include a text file with the Source Code
+ distribution titled "LEGAL" which describes the claim and the
+ party making the claim in sufficient detail that a recipient will
+ know whom to contact. If Contributor obtains such knowledge after
+ the Modification is made available as described in Section 3.2,
+ Contributor shall promptly modify the LEGAL file in all copies
+ Contributor makes available thereafter and shall take other steps
+ (such as notifying appropriate mailing lists or newsgroups)
+ reasonably calculated to inform those who received the Covered
+ Code that new knowledge has been obtained.
+
+ (b) Contributor APIs.
+ If Contributor's Modifications include an application programming
+ interface and Contributor has knowledge of patent licenses which
+ are reasonably necessary to implement that API, Contributor must
+ also include this information in the LEGAL file.
+
+ (c) Representations.
+ Contributor represents that, except as disclosed pursuant to
+ Section 3.4(a) above, Contributor believes that Contributor's
+ Modifications are Contributor's original creation(s) and/or
+ Contributor has sufficient rights to grant the rights conveyed by
+ this License.
+
+ 3.5. Required Notices.
+ You must duplicate the notice in Exhibit A in each file of the Source
+ Code. If it is not possible to put such notice in a particular Source
+ Code file due to its structure, then You must include such notice in a
+ location (such as a relevant directory) where a user would be likely
+ to look for such a notice. If You created one or more Modification(s)
+ You may add your name as a Contributor to the notice described in
+ Exhibit A. You must also duplicate this License in any documentation
+ for the Source Code where You describe recipients' rights or ownership
+ rights relating to Covered Code. You may choose to offer, and to
+ charge a fee for, warranty, support, indemnity or liability
+ obligations to one or more recipients of Covered Code. However, You
+ may do so only on Your own behalf, and not on behalf of the Initial
+ Developer or any Contributor. You must make it absolutely clear than
+ any such warranty, support, indemnity or liability obligation is
+ offered by You alone, and You hereby agree to indemnify the Initial
+ Developer and every Contributor for any liability incurred by the
+ Initial Developer or such Contributor as a result of warranty,
+ support, indemnity or liability terms You offer.
+
+ 3.6. Distribution of Executable Versions.
+ You may distribute Covered Code in Executable form only if the
+ requirements of Section 3.1-3.5 have been met for that Covered Code,
+ and if You include a notice stating that the Source Code version of
+ the Covered Code is available under the terms of this License,
+ including a description of how and where You have fulfilled the
+ obligations of Section 3.2. The notice must be conspicuously included
+ in any notice in an Executable version, related documentation or
+ collateral in which You describe recipients' rights relating to the
+ Covered Code. You may distribute the Executable version of Covered
+ Code or ownership rights under a license of Your choice, which may
+ contain terms different from this License, provided that You are in
+ compliance with the terms of this License and that the license for the
+ Executable version does not attempt to limit or alter the recipient's
+ rights in the Source Code version from the rights set forth in this
+ License. If You distribute the Executable version under a different
+ license You must make it absolutely clear that any terms which differ
+ from this License are offered by You alone, not by the Initial
+ Developer or any Contributor. You hereby agree to indemnify the
+ Initial Developer and every Contributor for any liability incurred by
+ the Initial Developer or such Contributor as a result of any such
+ terms You offer.
+
+ 3.7. Larger Works.
+ You may create a Larger Work by combining Covered Code with other code
+ not governed by the terms of this License and distribute the Larger
+ Work as a single product. In such a case, You must make sure the
+ requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+ If it is impossible for You to comply with any of the terms of this
+ License with respect to some or all of the Covered Code due to
+ statute, judicial order, or regulation then You must: (a) comply with
+ the terms of this License to the maximum extent possible; and (b)
+ describe the limitations and the code they affect. Such description
+ must be included in the LEGAL file described in Section 3.4 and must
+ be included with all distributions of the Source Code. Except to the
+ extent prohibited by statute or regulation, such description must be
+ sufficiently detailed for a recipient of ordinary skill to be able to
+ understand it.
+
+5. Application of this License.
+
+ This License applies to code to which the Initial Developer has
+ attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+ 6.1. New Versions.
+ Netscape Communications Corporation ("Netscape") may publish revised
+ and/or new versions of the License from time to time. Each version
+ will be given a distinguishing version number.
+
+ 6.2. Effect of New Versions.
+ Once Covered Code has been published under a particular version of the
+ License, You may always continue to use it under the terms of that
+ version. You may also choose to use such Covered Code under the terms
+ of any subsequent version of the License published by Netscape. No one
+ other than Netscape has the right to modify the terms applicable to
+ Covered Code created under this License.
+
+ 6.3. Derivative Works.
+ If You create or use a modified version of this License (which you may
+ only do in order to apply it to code which is not already Covered Code
+ governed by this License), You must (a) rename Your license so that
+ the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+ "MPL", "NPL" or any confusingly similar phrase do not appear in your
+ license (except to note that your license differs from this License)
+ and (b) otherwise make it clear that Your version of the license
+ contains terms which differ from the Mozilla Public License and
+ Netscape Public License. (Filling in the name of the Initial
+ Developer, Original Code or Contributor in the notice described in
+ Exhibit A shall not of themselves be deemed to be modifications of
+ this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+ COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+ DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+ THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+ IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+ YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+ COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+ OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+ ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+ 8.1. This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to cure
+ such breach within 30 days of becoming aware of the breach. All
+ sublicenses to the Covered Code which are properly granted shall
+ survive any termination of this License. Provisions which, by their
+ nature, must remain in effect beyond the termination of this License
+ shall survive.
+
+ 8.2. If You initiate litigation by asserting a patent infringement
+ claim (excluding declatory judgment actions) against Initial Developer
+ or a Contributor (the Initial Developer or Contributor against whom
+ You file such action is referred to as "Participant") alleging that:
+
+ (a) such Participant's Contributor Version directly or indirectly
+ infringes any patent, then any and all rights granted by such
+ Participant to You under Sections 2.1 and/or 2.2 of this License
+ shall, upon 60 days notice from Participant terminate prospectively,
+ unless if within 60 days after receipt of notice You either: (i)
+ agree in writing to pay Participant a mutually agreeable reasonable
+ royalty for Your past and future use of Modifications made by such
+ Participant, or (ii) withdraw Your litigation claim with respect to
+ the Contributor Version against such Participant. If within 60 days
+ of notice, a reasonable royalty and payment arrangement are not
+ mutually agreed upon in writing by the parties or the litigation claim
+ is not withdrawn, the rights granted by Participant to You under
+ Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+ the 60 day notice period specified above.
+
+ (b) any software, hardware, or device, other than such Participant's
+ Contributor Version, directly or indirectly infringes any patent, then
+ any rights granted to You by such Participant under Sections 2.1(b)
+ and 2.2(b) are revoked effective as of the date You first made, used,
+ sold, distributed, or had made, Modifications made by that
+ Participant.
+
+ 8.3. If You assert a patent infringement claim against Participant
+ alleging that such Participant's Contributor Version directly or
+ indirectly infringes any patent where such claim is resolved (such as
+ by license or settlement) prior to the initiation of patent
+ infringement litigation, then the reasonable value of the licenses
+ granted by such Participant under Sections 2.1 or 2.2 shall be taken
+ into account in determining the amount or value of any payment or
+ license.
+
+ 8.4. In the event of termination under Sections 8.1 or 8.2 above,
+ all end user license agreements (excluding distributors and resellers)
+ which have been validly granted by You or any distributor hereunder
+ prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+ (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+ DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+ OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+ ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+ CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+ WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+ COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+ INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+ LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+ RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+ PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+ EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+ THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+ The Covered Code is a "commercial item," as that term is defined in
+ 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+ software" and "commercial computer software documentation," as such
+ terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+ C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+ all U.S. Government End Users acquire Covered Code with only those
+ rights set forth herein.
+
+11. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the extent
+ necessary to make it enforceable. This License shall be governed by
+ California law provisions (except to the extent applicable law, if
+ any, provides otherwise), excluding its conflict-of-law provisions.
+ With respect to disputes in which at least one party is a citizen of,
+ or an entity chartered or registered to do business in the United
+ States of America, any litigation relating to this License shall be
+ subject to the jurisdiction of the Federal Courts of the Northern
+ District of California, with venue lying in Santa Clara County,
+ California, with the losing party responsible for costs, including
+ without limitation, court costs and reasonable attorneys' fees and
+ expenses. The application of the United Nations Convention on
+ Contracts for the International Sale of Goods is expressly excluded.
+ Any law or regulation which provides that the language of a contract
+ shall be construed against the drafter shall not apply to this
+ License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+ responsible for claims and damages arising, directly or indirectly,
+ out of its utilization of rights under this License and You agree to
+ work with Initial Developer and Contributors to distribute such
+ responsibility on an equitable basis. Nothing herein is intended or
+ shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+ Initial Developer may designate portions of the Covered Code as
+ "Multiple-Licensed". "Multiple-Licensed" means that the Initial
+ Developer permits you to utilize portions of the Covered Code under
+ Your choice of the NPL or the alternative licenses, if any, specified
+ by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+ ``The contents of this file are subject to the Mozilla Public License
+ Version 1.1 (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ License for the specific language governing rights and limitations
+ under the License.
+
+ The Original Code is ______________________________________.
+
+ The Initial Developer of the Original Code is ________________________.
+ Portions created by ______________________ are Copyright (C) ______
+ _______________________. All Rights Reserved.
+
+ Contributor(s): ______________________________________.
+
+ Alternatively, the contents of this file may be used under the terms
+ of the _____ license (the "[___] License"), in which case the
+ provisions of [______] License are applicable instead of those
+ above. If you wish to allow use of your version of this file only
+ under the terms of the [____] License and not to allow others to use
+ your version of this file under the MPL, indicate your decision by
+ deleting the provisions above and replace them with the notice and
+ other provisions required by the [___] License. If you do not delete
+ the provisions above, a recipient may use your version of this file
+ under either the MPL or the [___] License."
+
+ [NOTE: The text of this Exhibit A may differ slightly from the text of
+ the notices in the Source Code files of the Original Code. You should
+ use the text of this Exhibit A rather than the text found in the
+ Original Code Source Code for Your Modifications.]
+
+ ----------------------------------------------------------------------
+
+ AMENDMENTS
+
+ The Netscape Public License Version 1.1 ("NPL") consists of the
+ Mozilla Public License Version 1.1 with the following Amendments,
+ including Exhibit A-Netscape Public License. Files identified with
+ "Exhibit A-Netscape Public License" are governed by the Netscape
+ Public License Version 1.1.
+
+ Additional Terms applicable to the Netscape Public License.
+ I. Effect.
+ These additional terms described in this Netscape Public
+ License -- Amendments shall apply to the Mozilla Communicator
+ client code and to all Covered Code under this License.
+
+ II. "Netscape's Branded Code" means Covered Code that Netscape
+ distributes and/or permits others to distribute under one or more
+ trademark(s) which are controlled by Netscape but which are not
+ licensed for use under this License.
+
+ III. Netscape and logo.
+ This License does not grant any rights to use the trademarks
+ "Netscape", the "Netscape N and horizon" logo or the "Netscape
+ lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript",
+ "Smart Browsing" even if such marks are included in the Original
+ Code or Modifications.
+
+ IV. Inability to Comply Due to Contractual Obligation.
+ Prior to licensing the Original Code under this License, Netscape
+ has licensed third party code for use in Netscape's Branded Code.
+ To the extent that Netscape is limited contractually from making
+ such third party code available under this License, Netscape may
+ choose to reintegrate such code into Covered Code without being
+ required to distribute such code in Source Code form, even if
+ such code would otherwise be considered "Modifications" under
+ this License.
+
+ V. Use of Modifications and Covered Code by Initial Developer.
+ V.1. In General.
+ The obligations of Section 3 apply to Netscape, except to
+ the extent specified in this Amendment, Section V.2 and V.3.
+
+ V.2. Other Products.
+ Netscape may include Covered Code in products other than the
+ Netscape's Branded Code which are released by Netscape
+ during the two (2) years following the release date of the
+ Original Code, without such additional products becoming
+ subject to the terms of this License, and may license such
+ additional products on different terms from those contained
+ in this License.
+
+ V.3. Alternative Licensing.
+ Netscape may license the Source Code of Netscape's Branded
+ Code, including Modifications incorporated therein, without
+ such Netscape Branded Code becoming subject to the terms of
+ this License, and may license such Netscape Branded Code on
+ different terms from those contained in this License.
+
+ VI. Litigation.
+ Notwithstanding the limitations of Section 11 above, the
+ provisions regarding litigation in Section 11(a), (b) and (c) of
+ the License shall apply to all disputes relating to this License.
+
+ EXHIBIT A-Netscape Public License.
+
+ "The contents of this file are subject to the Netscape Public
+ License Version 1.1 (the "License"); you may not use this file
+ except in compliance with the License. You may obtain a copy of
+ the License at http://www.mozilla.org/NPL/
+
+ Software distributed under the License is distributed on an "AS
+ IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ rights and limitations under the License.
+
+ The Original Code is Mozilla Communicator client code, released
+ March 31, 1998.
+
+ The Initial Developer of the Original Code is Netscape
+ Communications Corporation. Portions created by Netscape are
+ Copyright (C) 1998-1999 Netscape Communications Corporation. All
+ Rights Reserved.
+
+ Contributor(s): ______________________________________.
+
+ Alternatively, the contents of this file may be used under the
+ terms of the _____ license (the "[___] License"), in which case
+ the provisions of [______] License are applicable instead of
+ those above. If you wish to allow use of your version of this
+ file only under the terms of the [____] License and not to allow
+ others to use your version of this file under the NPL, indicate
+ your decision by deleting the provisions above and replace them
+ with the notice and other provisions required by the [___]
+ License. If you do not delete the provisions above, a recipient
+ may use your version of this file under either the NPL or the
+ [___] License."
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/COPYING.ZLIB b/Build/source/libs/zziplib/zziplib-src/docs/COPYING.ZLIB
new file mode 100644
index 00000000000..b21b5724b39
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/COPYING.ZLIB
@@ -0,0 +1,30 @@
+
+ THE ZLIB/LIBPNG LICENSE (copy from opensource.org)
+
+ Copyright (c) <year> <copyright holders>
+
+ 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/Build/source/libs/zziplib/zziplib-src/docs/Makefile.am b/Build/source/libs/zziplib/zziplib-src/docs/Makefile.am
new file mode 100644
index 00000000000..7e009a13ef7
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/Makefile.am
@@ -0,0 +1,312 @@
+AUTOMAKE_OPTIONS = 1.4 foreign
+AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2
+
+PYRUN = PYTHONDONTWRITEBYTECODE=1 $(PYDEFS) @PYTHON@ $(PYFLAGS)
+PLRUN = PERL_DL_NONLAZY=1 $(PLDEFS) @PERL@ $(PLFLAGS)
+DELETE = echo deleting...
+
+doc_FILES = README.MSVC6 README.SDL COPYING.MPL COPYING.LIB COPYING.ZLIB \
+ zziplib.html zzipmmapped.html zzipfseeko.html
+htm_FILES = zzip-index.htm zzip-zip.htm zzip-file.htm zzip-sdl-rwops.htm \
+ zzip-extio.htm zzip-xor.htm zzip-crypt.htm zzip-cryptoid.htm \
+ zzip-api.htm zzip-basics.htm zzip-extras.htm zzip-parse.htm \
+ 64on32.htm future.htm fseeko.htm mmapped.htm memdisk.htm \
+ configs.htm sfx-make.htm developer.htm download.htm \
+ history.htm referentials.htm faq.htm copying.htm notes.htm \
+ functions.htm zip-php.htm
+htms_FILES = changes.htm
+SDL = @top_srcdir@/SDL
+SDL_RWOPS = $(SDL)/SDL_rwops_zzcat.c \
+ $(SDL)/SDL_rwops_zzip.c $(SDL)/SDL_rwops_zzip.h
+changelog = @top_srcdir@/ChangeLog
+
+EXTRA_DIST = make-doc.py $(doc_FILES) $(htm_FILES) $(SDL_RWOPS) \
+ make-doc.pl make-dbk.pl mksite.sh mksite.pl body.htm \
+ dbk2man.py dir2index.py \
+ $(zzipdoc_FILES) sdocbook.css \
+ zziplib-manpages.dbk zziplib-master.dbk \
+ zziplib-manpages.tar
+CLEANFILES = *.pc *.omf *.tar *.html *.xml changes.htm
+DISTCLEANFILES = zziplib.spec
+
+zzipdoc_FILES = makedocs.py zzipdoc/__init__.py \
+ zzipdoc/commentmarkup.py zzipdoc/match.py \
+ zzipdoc/dbk2htm.py zzipdoc/htm2dbk.py \
+ zzipdoc/functionheader.py zzipdoc/options.py \
+ zzipdoc/functionlisthtmlpage.py zzipdoc/textfileheader.py \
+ zzipdoc/functionlistreference.py zzipdoc/textfile.py \
+ zzipdoc/functionprototype.py zzipdoc/htmldocument.py \
+ zzipdoc/docbookdocument.py
+
+html_FILES = $(htm_FILES:.htm=.html) $(htms_FILES:.htm=.html) \
+ $(htm_FILES:.htm=.print.html) $(htms_FILES:.htm=.print.html) \
+ site.html site.print.html
+
+all : all-am default
+default : doc @MAINTAINER_MODE_FALSE@ mans
+clean-doc clean-docs : clean-unpack
+ - rm $(DISTCLEANFILES)
+ - rm $(MAINTAINERCLEANFILES)
+install-data-local : @MAINTAINER_MODE_FALSE@ install-mans
+
+# -------------------------------------------------------------------
+zziplib.spec : @top_srcdir@/$(PACKAGE).spec
+ @ cp $? $@ # the two zzip-doc.* will grep through zziplib.spec
+doc : $(doc_FILES) site.html
+docs : doc manpages.tar htmpages.tar
+# docu : docs
+docu :
+ - rm zziplib2.html zzipmmapped.html zzipfseeko.html
+ $(MAKE) manpages.tar htmpages.tar DELETE=exit
+
+zziplib.html: zziplib.xml
+zziplib.xml: zziplib.spec $(srcdir)/Makefile.am \
+ $(srcdir)/zzipdoc/*.py \
+ $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c
+ $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \
+ "--package=$(PACKAGE)" "--version=$(VERSION)" \
+ "--onlymainheader=zzip/lib.h" "--output=zziplib"
+ test -s zziplib.docbook && mv zziplib.docbook zziplib.xml
+zzipmmapped.html: zzipmmapped.xml
+zzipmmapped.xml: zziplib.spec $(srcdir)/Makefile.am \
+ $(srcdir)/zzipdoc/*.py \
+ $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c
+ $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \
+ "--package=$(PACKAGE)" "--version=$(VERSION)" \
+ "--onlymainheader=zzip/mmapped.h" "--output=zzipmmapped"
+ test -s zzipmmapped.docbook && mv zzipmmapped.docbook zzipmmapped.xml
+zzipfseeko.html: zzipfseeko.xml
+zzipfseeko.xml: zziplib.spec $(srcdir)/Makefile.am \
+ $(srcdir)/zzipdoc/*.py \
+ $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c
+ $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \
+ "--package=$(PACKAGE)" "--version=$(VERSION)" \
+ "--onlymainheader=zzip/fseeko.h" "--output=zzipfseeko"
+ test -s zzipfseeko.docbook && mv zzipfseeko.docbook zzipfseeko.xml
+
+omfdir=${datadir}/omf
+pkgomfdir=${omfdir}/${PACKAGE}
+pkgdocdir=${mandir}/../doc/${PACKAGE}
+bins = @top_srcdir@/bins
+DOCEXAMPLES = $(bins)/zzdir.c $(bins)/zzcat.c \
+ $(bins)/zzobfuscated.c $(bins)/zziptest.c \
+ $(bins)/zzxordir.c $(bins)/zzxorcat.c \
+ $(bins)/zzxorcopy.c $(SDL_RWOPS)
+
+install-docs: $(doc_FILES) $(man_FILES) site.html htmpages.tar
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)
+ $(INSTALL_DATA) $(html_FILES) $(DESTDIR)$(pkgdocdir)
+ for i in $(doc_FILES) $(DOCEXAMPLES) $(changelog) $(srcdir)/README.* \
+ ; do $(INSTALL_DATA) `test -f $$i || echo $(srcdir)/`$$i \
+ $(DESTDIR)$(pkgdocdir) ; done
+ cd $(DESTDIR)$(pkgdocdir) && ln -sf zzip-index.html index.html
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/man
+ @ echo $(PAX_TAR_EXTRACT) htmpages.tar '>>>' $(DESTDIR)$(pkgdocdir)/man/ \
+ ; test -f htmpages.tar || cd "$srcdir" \
+ ; P=`pwd` ; test -s htmpages.tar || exit 1 \
+ ; cd $(DESTDIR)$(pkgdocdir)/man && $(PAX_TAR_EXTRACT) $$P/htmpages.tar \
+ ; true
+
+install-doc : install-docs $(PACKAGE)-doc.omf
+ $(mkinstalldirs) $(DESTDIR)$(pkgomfdir)
+ $(INSTALL_DATA) $(PACKAGE)-doc.omf $(DESTDIR)$(pkgomfdir)/
+ - test ".$(DESTDIR)" != "." || scrollkeeper-update
+
+SOURCEFORGE_GROUP=zziplib
+SOURCEFORGE_HOST=web.sourceforge.net
+SOURCEFORGE_PATH=/home/groups/z/zz/zziplib/htdocs
+www: upload-sourceforge
+upload-sourceforge:
+ $(MAKE) install-docs DESTDIR=/tmp/zziplib-htdocs-$$USER/
+ echo scp ... $(SOURCEFORGE_HOST):$(SOURCEFORGE_PATH)/ ; sleep 4
+ scp -r /tmp/zziplib-htdocs-$$USER/$(pkgdocdir)/* \
+ $$USER,$(SOURCEFORGE_GROUP)@$(SOURCEFORGE_HOST):$(SOURCEFORGE_PATH)
+ rm -r /tmp/zziplib-htdocs-$$USER/
+
+# ------------------------------------------------------------ package manpages
+mans : manpages
+install-mans : install-man3
+
+man3 man manpages : manpages.tar
+html htm htmpages : htmpages.tar
+
+zziplib-manpages.tar : manpages.tar
+ test -s "$@" || test -s "$(srcdir)/$@"
+manpages.tar : zziplib.xml zzipmmapped.xml zzipfseeko.xml
+ : "unix man format of the manpages - goes to ../share/man/man3"
+ @ if test "$(XMLTO)" != ":" \
+ ; then echo going to regenerate "$@" in subdir "'"man"'" \
+ ; echo 'test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3' \
+ ; test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3 \
+ ; echo '$(XMLTO) -o man3 man zziplib.xml' \
+ ; $(XMLTO) -o man3 man zziplib.xml \
+ ; echo '$(XMLTO) -o man3 man zzipmmapped.xml' \
+ ; $(XMLTO) -o man3 man zzipmmapped.xml \
+ ; echo '$(XMLTO) -o man3 man zzipfseeko.xml' \
+ ; $(XMLTO) -o man3 man zzipfseeko.xml \
+ ; if test -d man3/man3; then mv man3 man3_ \
+ ; mv man3_/man3 man3; rm -r man3_; fi \
+ ; echo 'chmod 664 man3/*.3' \
+ ; chmod 664 man3/*.3 \
+ ; echo '$(PAX_TAR_CREATE) "$@" man3/' \
+ ; $(PAX_TAR_CREATE) "$@" man3/ \
+ ; fi ; true
+ @ if test "$(XMLTO)" = ":" \
+ ; then echo going to regenerate "$@" in subdir "'"man"'" \
+ ; echo 'test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3' \
+ ; test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3 \
+ ; echo '$(srcdir)/dbk2man.py -o man3 man zziplib.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o man3 man zziplib.xml \
+ ; echo '$(srcdir)/dbk2man.py -o man3 man zzipmmapped.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o man3 man zzipmmapped.xml \
+ ; echo '$(srcdir)/dbk2man.py -o man3 man zzipfseeko.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o man3 man zzipfseeko.xml \
+ ; if test -d man3/man3; then mv man3 man3_ \
+ ; mv man3_/man3 man3; rm -r man3_; fi \
+ ; echo 'chmod 664 man3/*.3' \
+ ; chmod 664 man3/*.3 \
+ ; echo '$(PAX_TAR_CREATE) "$@" man3/' \
+ ; $(PAX_TAR_CREATE) "$@" man3/ \
+ ; fi ; true
+ @ if test -s $@ \
+ ; then echo cp $@ zziplib-$@ "(saved)"; cp $@ zziplib-$@ \
+ ; else echo cp $(srcdir)/zziplib-$@ $@; cp $(srcdir)/zziplib-$@ $@ \
+ ; fi
+
+zziplib-htmpages.tar : htmpages.tar
+ test -s "$@" || test -s "$(srcdir)/$@"
+htmpages.tar : zziplib.xml zzipmmapped.xml zzipfseeko.xml zziplib-manpages.dbk
+ : "html format of the manpages - put into zziplib/htdocs/man/*"
+ @ if test "$(XMLTO)" != ":" \
+ ; then echo going to regenerate "$@" in subdir "'"html"'" \
+ ; echo 'test ! -d html || rm html/* ; test -d html || mkdir html' \
+ ; test ! -d html || rm html/* ; test -d html || mkdir html \
+ ; echo 'cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml' \
+ ; cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml \
+ ; echo '$(XMLTO) -o html html zziplib-manpages.xml | tee written.lst' \
+ ; $(XMLTO) -o html html zziplib-manpages.xml | tee written.lst \
+ ; echo '$(PAX_TAR_CREATE) $@ html/*.*' \
+ ; $(PAX_TAR_CREATE) $@ html/*.* \
+ ; fi ; true
+ @ if test "$(XMLTO)" = ":" \
+ ; then echo going to regenerate "$@" in subdir "'"html"'" \
+ ; echo 'test ! -d html || rm html/* ; test -d html || mkdir html' \
+ ; test ! -d html || rm html/* ; test -d html || mkdir html \
+ ; echo 'cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml' \
+ ; cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml \
+ ; echo '$(srcdir)/dbk2man.py -o html html zziplib.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o html html zziplib.xml \
+ ; echo '$(srcdir)/dbk2man.py -o html html zzipmmapped.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o html html zzipmmapped.xml \
+ ; echo '$(srcdir)/dbk2man.py -o html html zzipfseeko.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o html html zzipfseeko.xml \
+ ; echo '$(srcdir)/dir2index.py -o html html ' \
+ ; $(PYTHON) $(srcdir)/dir2index.py -o html html \
+ ; echo '$(PAX_TAR_CREATE) $@ html/*.*' \
+ ; $(PAX_TAR_CREATE) $@ html/*.* \
+ ; fi ; true
+ @ if test -s $@ \
+ ; then echo cp $@ zziplib-$@ "(saved)"; cp $@ zziplib-$@ \
+ ; else echo cp $(srcdir)/zziplib-$@ $@; cp $(srcdir)/zziplib-$@ $@ \
+ ; fi
+
+install-man3 : manpages.tar
+ $(mkinstalldirs) $(DESTDIR)$(mandir)/man3
+ P=`pwd` ; test -s manpages.tar || exit 1 \
+ ; cd $(DESTDIR)$(mandir) && $(PAX_TAR_EXTRACT) $$P/manpages.tar \
+ ; true
+
+unpack : manpages.tar htmpages.tar
+ test -s manpages.tar && test -s htmpages.tar
+ (rm -rf _htm && mkdir _htm && cd _htm && $(PAX_TAR_EXTRACT) ../htmpages.tar)
+ (rm -rf _man && mkdir _man && cd _man && $(PAX_TAR_EXTRACT) ../manpages.tar)
+clean-unpack :
+ rm -rf _htm
+ rm -rf _man
+
+# --------------------------------------------------------------- OMF handling
+spec_file=$(top_srcdir)/$(PACKAGE).spec
+DOCSERIES= 775fb73e-1874-11d7-93e9-e18cd7ea3c2e
+FROMSPEC= $(spec_file) | head -1 | sed -e 's,<,\&lt;,g' -e 's,>,\&gt;,g'
+DATESPEC= `date +%Y-%m-%d`
+
+$(PACKAGE)-doc.omf : $(spec_file) Makefile
+ : "OMF for the html documentation - a copy of zziplib.sf.net"
+ echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>' >$@
+ echo '<omf><resource><creator> Guido Draheim </creator>' >>$@
+ grep Packager $(FROMSPEC) | sed -e 's,Packager *: *, <maintainer>,' \
+ -e '/<maintainer>/s,$$,</maintainer>,' >>$@
+ grep Summary $(FROMSPEC) | sed -e 's,Summary *: *, <title>,' \
+ -e '/<title>/s,$$,</title>,' >>$@
+ echo ' <date>'$(DATESPEC)'</date>' >>$@
+ echo ' <version identifier="$(VERSION)" date="'$(DATESPEC)'"/>' >>$@
+ grep Group $(FROMSPEC) | sed -e 's,Group *: *, <subject category=",' \
+ -e 's,/,|,g' -e '/<subject/s,$$," />,' >>$@
+ echo ' <format mime="text/html"/>' >>$@
+ pkgdocdir=`echo "$(pkgdocdir)" | sed -e "s|/[a-z][a-z]*/[.][.]/|/|"` \
+ echo ' <identifier url="file:'"$$pkgdocdir"'/zzip-index.html"/>' >>$@
+ echo ' <language code="C"/>' >>$@
+ echo ' <relation seriesid="$(DOCSERIES)"/>' >>$@
+ echo ' <rights type="GNU LGPL" holder="Guido Draheim"' >>$@
+ pkgdocdir=`echo "$(pkgdocdir)" | sed -e "s|/[a-z][a-z]*/[.][.]/|/|"` \
+ echo ' license="'"$$pkgdocdir"')/COPYING.LIB"/>' >>$@
+ echo '</resource></omf>' >>$@
+
+DOCBOOKDTD= -//OASIS/DTD Docbook V4.1.2//EN
+MANSERIES= a302c642-1888-11d7-86f6-ba4b52ef847d
+$(PACKAGE)-man.omf : $(PACKAGE)-doc.omf $(PACKAGE).xml
+ : "OMF for functions reference - the docbook master of the manpages"
+ sed -e 's,"text/html","text/xml" dtd="$(DOCBOOKDTD)",' \
+ -e 's,</title>, (Function Reference)</title>,' \
+ -e 's,/index.html,/xml/manpages.xml,' \
+ -e 's,$(DOCSERIES),$(MANSERIES),' $(PACKAGE)-doc.omf > $@
+ test -s $@ || rm $@
+
+omf : $(PACKAGE)-doc.omf $(PACKAGE)-man.omf
+install-omf : omf zziplib.xml zzipmmapped.xml zzipfseeko.xml
+ : "not installed by default anymore - 'make install-doc' has one OMF"
+ $(mkinstalldirs) $(DESTDIR)$(pkgomfdir)
+ $(INSTALL_DATA) $(PACKAGE)-doc.omf $(DESTDIR)$(pkgomfdir)/
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)
+ $(INSTALL_DATA) $(srcdir)/zziplib-manpages.xml \
+ $(DESTDIR)$(pkgdocdir)/xml/manpages.xml
+ $(INSTALL_DATA) zziplib.xml zzipmmapped.xml zzipfseeko.xml \
+ $(DESTDIR)$(pkgdocdir)/xml/
+ $(INSTALL_DATA) $(PACKAGE)-man.omf $(DESTDIR)$(pkgomfdir)/
+ - test ".$(DESTDIR)" != "." || scrollkeeper-update -v
+
+# ----------------------------------------------- mksite.sh for the main html
+site.htm : body.htm
+ cp $(srcdir)/body.htm site.htm
+mksite_sh_args = --VERSION=$(VERSION) --xml --src-dir=$(srcdir) --print
+site.html : body.htm site.htm mksite.sh $(htm_FILES) $(htms_FILES)
+ cp $(srcdir)/body.htm site.htm
+ perl $(srcdir)/mksite.pl $(mksite_sh_args) site.htm || \
+ $(SHELL) $(srcdir)/mksite.sh $(mksite_sh_args) site.htm
+
+changes.htm : $(top_srcdir)/ChangeLog Makefile
+ echo "<pre>" > $@ ; cat $(top_srcdir)/ChangeLog \
+ | sed -e "s,\\&,\\&amp\\;,g" \
+ -e "s,<,\\&lt\\;,g" -e "s,>,\\&gt\\;,g" \
+ -e "/^[A-Z].*[12][09][09][09]/s,\\(.*\\),<b>&</b>," \
+ -e "/^[0-9]/s,\\(.*\\),<b>&</b>," >> $@ ; echo "</pre>" >>$@
+
+# ----------------------------------------------- create pdf via docbook xml
+# sorry, the xmlto / docbook-xsl are too broken to rebuild the PDF anymore
+
+zzip.xml : $(htm_FILES) zziplib.xml make-dbk.pl
+ : '@PERL@ make-dbk.pl $(htm_FILES) zziplib.xml >$@'
+ @PYTHON@ $(srcdir)/zzipdoc/htm2dbk.py $(htm_FILES) zziplib.xml >$@
+ test -s "$@" || rm "$@"
+
+zzip.html : zzip.xml
+ xmlto html-nochunks zzip.xml
+zzip.pdf : zzip.xml
+ xmlto pdf zzip.xml
+
+zziplib.pdf : $(htm_FILES) $(srcdir)/zziplib-master.dbk mksite.pl
+ cp $(srcdir)/zziplib-master.dbk zziplib.docbook
+ xmlto pdf zziplib.docbook ; rm zziplib.docbook
+ test -s zziplib.pdf
+
+pdfs : zziplib.pdf
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/Makefile.in b/Build/source/libs/zziplib/zziplib-src/docs/Makefile.in
new file mode 100644
index 00000000000..6dfef6454b9
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/Makefile.in
@@ -0,0 +1,811 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = docs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
+ $(top_srcdir)/m4/ac_set_default_paths_system.m4 \
+ $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \
+ $(top_srcdir)/m4/acx_restrict.m4 \
+ $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \
+ $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \
+ $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \
+ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
+ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
+ $(top_srcdir)/m4/ax_check_enable_debug.m4 \
+ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
+ $(top_srcdir)/m4/ax_expand_prefix.m4 \
+ $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
+ $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
+ $(top_srcdir)/m4/ax_pax_tar.m4 \
+ $(top_srcdir)/m4/ax_prefix_config_h.m4 \
+ $(top_srcdir)/m4/ax_set_version_info.m4 \
+ $(top_srcdir)/m4/ax_spec_file.m4 \
+ $(top_srcdir)/m4/ax_spec_package_version.m4 \
+ $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \
+ $(top_srcdir)/m4/ax_warning_default_pkgconfig.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/patch_libtool_on_darwin_zsh_overquoting.m4 \
+ $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \
+ $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/uses/mkinstalldirs COPYING.LIB
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+ASAN_CFLAGS = @ASAN_CFLAGS@
+ASAN_LIBS = @ASAN_LIBS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONFIG_FILES = @CONFIG_FILES@
+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@
+GNUTAR = @GNUTAR@
+GREP = @GREP@
+GTAR = @GTAR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKZIP = @MKZIP@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PAX = @PAX@
+PAX_TAR_CREATE = @PAX_TAR_CREATE@
+PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+RANLIB = @RANLIB@
+RELEASE_INFO = @RELEASE_INFO@
+RESOLVES = @RESOLVES@
+SDL = @top_srcdir@/SDL
+SDL_GENERATE = @SDL_GENERATE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+THREAD_SAFE = @THREAD_SAFE@
+VERSION = @VERSION@
+VERSION_INFO = @VERSION_INFO@
+XMLTO = @XMLTO@
+ZIPTESTS = @ZIPTESTS@
+ZLIB_INCL = @ZLIB_INCL@
+ZLIB_LDIR = @ZLIB_LDIR@
+ZLIB_VERSION = @ZLIB_VERSION@
+ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+aclocaldir = @aclocaldir@
+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@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgconfig_libdir = @pkgconfig_libdir@
+pkgconfig_libfile = @pkgconfig_libfile@
+pkgconfigdir = @pkgconfigdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = 1.4 foreign
+AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2
+PYRUN = PYTHONDONTWRITEBYTECODE=1 $(PYDEFS) @PYTHON@ $(PYFLAGS)
+PLRUN = PERL_DL_NONLAZY=1 $(PLDEFS) @PERL@ $(PLFLAGS)
+DELETE = echo deleting...
+doc_FILES = README.MSVC6 README.SDL COPYING.MPL COPYING.LIB COPYING.ZLIB \
+ zziplib.html zzipmmapped.html zzipfseeko.html
+
+htm_FILES = zzip-index.htm zzip-zip.htm zzip-file.htm zzip-sdl-rwops.htm \
+ zzip-extio.htm zzip-xor.htm zzip-crypt.htm zzip-cryptoid.htm \
+ zzip-api.htm zzip-basics.htm zzip-extras.htm zzip-parse.htm \
+ 64on32.htm future.htm fseeko.htm mmapped.htm memdisk.htm \
+ configs.htm sfx-make.htm developer.htm download.htm \
+ history.htm referentials.htm faq.htm copying.htm notes.htm \
+ functions.htm zip-php.htm
+
+htms_FILES = changes.htm
+SDL_RWOPS = $(SDL)/SDL_rwops_zzcat.c \
+ $(SDL)/SDL_rwops_zzip.c $(SDL)/SDL_rwops_zzip.h
+
+changelog = @top_srcdir@/ChangeLog
+EXTRA_DIST = make-doc.py $(doc_FILES) $(htm_FILES) $(SDL_RWOPS) \
+ make-doc.pl make-dbk.pl mksite.sh mksite.pl body.htm \
+ dbk2man.py dir2index.py \
+ $(zzipdoc_FILES) sdocbook.css \
+ zziplib-manpages.dbk zziplib-master.dbk \
+ zziplib-manpages.tar
+
+CLEANFILES = *.pc *.omf *.tar *.html *.xml changes.htm
+DISTCLEANFILES = zziplib.spec
+zzipdoc_FILES = makedocs.py zzipdoc/__init__.py \
+ zzipdoc/commentmarkup.py zzipdoc/match.py \
+ zzipdoc/dbk2htm.py zzipdoc/htm2dbk.py \
+ zzipdoc/functionheader.py zzipdoc/options.py \
+ zzipdoc/functionlisthtmlpage.py zzipdoc/textfileheader.py \
+ zzipdoc/functionlistreference.py zzipdoc/textfile.py \
+ zzipdoc/functionprototype.py zzipdoc/htmldocument.py \
+ zzipdoc/docbookdocument.py
+
+html_FILES = $(htm_FILES:.htm=.html) $(htms_FILES:.htm=.html) \
+ $(htm_FILES:.htm=.print.html) $(htms_FILES:.htm=.print.html) \
+ site.html site.print.html
+
+omfdir = ${datadir}/omf
+pkgomfdir = ${omfdir}/${PACKAGE}
+pkgdocdir = ${mandir}/../doc/${PACKAGE}
+bins = @top_srcdir@/bins
+DOCEXAMPLES = $(bins)/zzdir.c $(bins)/zzcat.c \
+ $(bins)/zzobfuscated.c $(bins)/zziptest.c \
+ $(bins)/zzxordir.c $(bins)/zzxorcat.c \
+ $(bins)/zzxorcopy.c $(SDL_RWOPS)
+
+SOURCEFORGE_GROUP = zziplib
+SOURCEFORGE_HOST = web.sourceforge.net
+SOURCEFORGE_PATH = /home/groups/z/zz/zziplib/htdocs
+
+# --------------------------------------------------------------- OMF handling
+spec_file = $(top_srcdir)/$(PACKAGE).spec
+DOCSERIES = 775fb73e-1874-11d7-93e9-e18cd7ea3c2e
+FROMSPEC = $(spec_file) | head -1 | sed -e 's,<,\&lt;,g' -e 's,>,\&gt;,g'
+DATESPEC = `date +%Y-%m-%d`
+DOCBOOKDTD = -//OASIS/DTD Docbook V4.1.2//EN
+MANSERIES = a302c642-1888-11d7-86f6-ba4b52ef847d
+mksite_sh_args = --VERSION=$(VERSION) --xml --src-dir=$(srcdir) --print
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign docs/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+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)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ cscopelist-am ctags-am distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+all : all-am default
+default : doc @MAINTAINER_MODE_FALSE@ mans
+clean-doc clean-docs : clean-unpack
+ - rm $(DISTCLEANFILES)
+ - rm $(MAINTAINERCLEANFILES)
+install-data-local : @MAINTAINER_MODE_FALSE@ install-mans
+
+# -------------------------------------------------------------------
+zziplib.spec : @top_srcdir@/$(PACKAGE).spec
+ @ cp $? $@ # the two zzip-doc.* will grep through zziplib.spec
+doc : $(doc_FILES) site.html
+docs : doc manpages.tar htmpages.tar
+# docu : docs
+docu :
+ - rm zziplib2.html zzipmmapped.html zzipfseeko.html
+ $(MAKE) manpages.tar htmpages.tar DELETE=exit
+
+zziplib.html: zziplib.xml
+zziplib.xml: zziplib.spec $(srcdir)/Makefile.am \
+ $(srcdir)/zzipdoc/*.py \
+ $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c
+ $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \
+ "--package=$(PACKAGE)" "--version=$(VERSION)" \
+ "--onlymainheader=zzip/lib.h" "--output=zziplib"
+ test -s zziplib.docbook && mv zziplib.docbook zziplib.xml
+zzipmmapped.html: zzipmmapped.xml
+zzipmmapped.xml: zziplib.spec $(srcdir)/Makefile.am \
+ $(srcdir)/zzipdoc/*.py \
+ $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c
+ $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \
+ "--package=$(PACKAGE)" "--version=$(VERSION)" \
+ "--onlymainheader=zzip/mmapped.h" "--output=zzipmmapped"
+ test -s zzipmmapped.docbook && mv zzipmmapped.docbook zzipmmapped.xml
+zzipfseeko.html: zzipfseeko.xml
+zzipfseeko.xml: zziplib.spec $(srcdir)/Makefile.am \
+ $(srcdir)/zzipdoc/*.py \
+ $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c
+ $(PYRUN) $(srcdir)/makedocs.py @top_srcdir@/zzip/*.c $(zziplib) \
+ "--package=$(PACKAGE)" "--version=$(VERSION)" \
+ "--onlymainheader=zzip/fseeko.h" "--output=zzipfseeko"
+ test -s zzipfseeko.docbook && mv zzipfseeko.docbook zzipfseeko.xml
+
+install-docs: $(doc_FILES) $(man_FILES) site.html htmpages.tar
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)
+ $(INSTALL_DATA) $(html_FILES) $(DESTDIR)$(pkgdocdir)
+ for i in $(doc_FILES) $(DOCEXAMPLES) $(changelog) $(srcdir)/README.* \
+ ; do $(INSTALL_DATA) `test -f $$i || echo $(srcdir)/`$$i \
+ $(DESTDIR)$(pkgdocdir) ; done
+ cd $(DESTDIR)$(pkgdocdir) && ln -sf zzip-index.html index.html
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/man
+ @ echo $(PAX_TAR_EXTRACT) htmpages.tar '>>>' $(DESTDIR)$(pkgdocdir)/man/ \
+ ; test -f htmpages.tar || cd "$srcdir" \
+ ; P=`pwd` ; test -s htmpages.tar || exit 1 \
+ ; cd $(DESTDIR)$(pkgdocdir)/man && $(PAX_TAR_EXTRACT) $$P/htmpages.tar \
+ ; true
+
+install-doc : install-docs $(PACKAGE)-doc.omf
+ $(mkinstalldirs) $(DESTDIR)$(pkgomfdir)
+ $(INSTALL_DATA) $(PACKAGE)-doc.omf $(DESTDIR)$(pkgomfdir)/
+ - test ".$(DESTDIR)" != "." || scrollkeeper-update
+www: upload-sourceforge
+upload-sourceforge:
+ $(MAKE) install-docs DESTDIR=/tmp/zziplib-htdocs-$$USER/
+ echo scp ... $(SOURCEFORGE_HOST):$(SOURCEFORGE_PATH)/ ; sleep 4
+ scp -r /tmp/zziplib-htdocs-$$USER/$(pkgdocdir)/* \
+ $$USER,$(SOURCEFORGE_GROUP)@$(SOURCEFORGE_HOST):$(SOURCEFORGE_PATH)
+ rm -r /tmp/zziplib-htdocs-$$USER/
+
+# ------------------------------------------------------------ package manpages
+mans : manpages
+install-mans : install-man3
+
+man3 man manpages : manpages.tar
+html htm htmpages : htmpages.tar
+
+zziplib-manpages.tar : manpages.tar
+ test -s "$@" || test -s "$(srcdir)/$@"
+manpages.tar : zziplib.xml zzipmmapped.xml zzipfseeko.xml
+ : "unix man format of the manpages - goes to ../share/man/man3"
+ @ if test "$(XMLTO)" != ":" \
+ ; then echo going to regenerate "$@" in subdir "'"man"'" \
+ ; echo 'test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3' \
+ ; test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3 \
+ ; echo '$(XMLTO) -o man3 man zziplib.xml' \
+ ; $(XMLTO) -o man3 man zziplib.xml \
+ ; echo '$(XMLTO) -o man3 man zzipmmapped.xml' \
+ ; $(XMLTO) -o man3 man zzipmmapped.xml \
+ ; echo '$(XMLTO) -o man3 man zzipfseeko.xml' \
+ ; $(XMLTO) -o man3 man zzipfseeko.xml \
+ ; if test -d man3/man3; then mv man3 man3_ \
+ ; mv man3_/man3 man3; rm -r man3_; fi \
+ ; echo 'chmod 664 man3/*.3' \
+ ; chmod 664 man3/*.3 \
+ ; echo '$(PAX_TAR_CREATE) "$@" man3/' \
+ ; $(PAX_TAR_CREATE) "$@" man3/ \
+ ; fi ; true
+ @ if test "$(XMLTO)" = ":" \
+ ; then echo going to regenerate "$@" in subdir "'"man"'" \
+ ; echo 'test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3' \
+ ; test ! -d man3 || rm man3/* ; test -d man3 || mkdir man3 \
+ ; echo '$(srcdir)/dbk2man.py -o man3 man zziplib.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o man3 man zziplib.xml \
+ ; echo '$(srcdir)/dbk2man.py -o man3 man zzipmmapped.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o man3 man zzipmmapped.xml \
+ ; echo '$(srcdir)/dbk2man.py -o man3 man zzipfseeko.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o man3 man zzipfseeko.xml \
+ ; if test -d man3/man3; then mv man3 man3_ \
+ ; mv man3_/man3 man3; rm -r man3_; fi \
+ ; echo 'chmod 664 man3/*.3' \
+ ; chmod 664 man3/*.3 \
+ ; echo '$(PAX_TAR_CREATE) "$@" man3/' \
+ ; $(PAX_TAR_CREATE) "$@" man3/ \
+ ; fi ; true
+ @ if test -s $@ \
+ ; then echo cp $@ zziplib-$@ "(saved)"; cp $@ zziplib-$@ \
+ ; else echo cp $(srcdir)/zziplib-$@ $@; cp $(srcdir)/zziplib-$@ $@ \
+ ; fi
+
+zziplib-htmpages.tar : htmpages.tar
+ test -s "$@" || test -s "$(srcdir)/$@"
+htmpages.tar : zziplib.xml zzipmmapped.xml zzipfseeko.xml zziplib-manpages.dbk
+ : "html format of the manpages - put into zziplib/htdocs/man/*"
+ @ if test "$(XMLTO)" != ":" \
+ ; then echo going to regenerate "$@" in subdir "'"html"'" \
+ ; echo 'test ! -d html || rm html/* ; test -d html || mkdir html' \
+ ; test ! -d html || rm html/* ; test -d html || mkdir html \
+ ; echo 'cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml' \
+ ; cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml \
+ ; echo '$(XMLTO) -o html html zziplib-manpages.xml | tee written.lst' \
+ ; $(XMLTO) -o html html zziplib-manpages.xml | tee written.lst \
+ ; echo '$(PAX_TAR_CREATE) $@ html/*.*' \
+ ; $(PAX_TAR_CREATE) $@ html/*.* \
+ ; fi ; true
+ @ if test "$(XMLTO)" = ":" \
+ ; then echo going to regenerate "$@" in subdir "'"html"'" \
+ ; echo 'test ! -d html || rm html/* ; test -d html || mkdir html' \
+ ; test ! -d html || rm html/* ; test -d html || mkdir html \
+ ; echo 'cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml' \
+ ; cp $(srcdir)/zziplib-manpages.dbk zziplib-manpages.xml \
+ ; echo '$(srcdir)/dbk2man.py -o html html zziplib.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o html html zziplib.xml \
+ ; echo '$(srcdir)/dbk2man.py -o html html zzipmmapped.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o html html zzipmmapped.xml \
+ ; echo '$(srcdir)/dbk2man.py -o html html zzipfseeko.xml' \
+ ; $(PYTHON) $(srcdir)/dbk2man.py -o html html zzipfseeko.xml \
+ ; echo '$(srcdir)/dir2index.py -o html html ' \
+ ; $(PYTHON) $(srcdir)/dir2index.py -o html html \
+ ; echo '$(PAX_TAR_CREATE) $@ html/*.*' \
+ ; $(PAX_TAR_CREATE) $@ html/*.* \
+ ; fi ; true
+ @ if test -s $@ \
+ ; then echo cp $@ zziplib-$@ "(saved)"; cp $@ zziplib-$@ \
+ ; else echo cp $(srcdir)/zziplib-$@ $@; cp $(srcdir)/zziplib-$@ $@ \
+ ; fi
+
+install-man3 : manpages.tar
+ $(mkinstalldirs) $(DESTDIR)$(mandir)/man3
+ P=`pwd` ; test -s manpages.tar || exit 1 \
+ ; cd $(DESTDIR)$(mandir) && $(PAX_TAR_EXTRACT) $$P/manpages.tar \
+ ; true
+
+unpack : manpages.tar htmpages.tar
+ test -s manpages.tar && test -s htmpages.tar
+ (rm -rf _htm && mkdir _htm && cd _htm && $(PAX_TAR_EXTRACT) ../htmpages.tar)
+ (rm -rf _man && mkdir _man && cd _man && $(PAX_TAR_EXTRACT) ../manpages.tar)
+clean-unpack :
+ rm -rf _htm
+ rm -rf _man
+
+$(PACKAGE)-doc.omf : $(spec_file) Makefile
+ : "OMF for the html documentation - a copy of zziplib.sf.net"
+ echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>' >$@
+ echo '<omf><resource><creator> Guido Draheim </creator>' >>$@
+ grep Packager $(FROMSPEC) | sed -e 's,Packager *: *, <maintainer>,' \
+ -e '/<maintainer>/s,$$,</maintainer>,' >>$@
+ grep Summary $(FROMSPEC) | sed -e 's,Summary *: *, <title>,' \
+ -e '/<title>/s,$$,</title>,' >>$@
+ echo ' <date>'$(DATESPEC)'</date>' >>$@
+ echo ' <version identifier="$(VERSION)" date="'$(DATESPEC)'"/>' >>$@
+ grep Group $(FROMSPEC) | sed -e 's,Group *: *, <subject category=",' \
+ -e 's,/,|,g' -e '/<subject/s,$$," />,' >>$@
+ echo ' <format mime="text/html"/>' >>$@
+ pkgdocdir=`echo "$(pkgdocdir)" | sed -e "s|/[a-z][a-z]*/[.][.]/|/|"` \
+ echo ' <identifier url="file:'"$$pkgdocdir"'/zzip-index.html"/>' >>$@
+ echo ' <language code="C"/>' >>$@
+ echo ' <relation seriesid="$(DOCSERIES)"/>' >>$@
+ echo ' <rights type="GNU LGPL" holder="Guido Draheim"' >>$@
+ pkgdocdir=`echo "$(pkgdocdir)" | sed -e "s|/[a-z][a-z]*/[.][.]/|/|"` \
+ echo ' license="'"$$pkgdocdir"')/COPYING.LIB"/>' >>$@
+ echo '</resource></omf>' >>$@
+$(PACKAGE)-man.omf : $(PACKAGE)-doc.omf $(PACKAGE).xml
+ : "OMF for functions reference - the docbook master of the manpages"
+ sed -e 's,"text/html","text/xml" dtd="$(DOCBOOKDTD)",' \
+ -e 's,</title>, (Function Reference)</title>,' \
+ -e 's,/index.html,/xml/manpages.xml,' \
+ -e 's,$(DOCSERIES),$(MANSERIES),' $(PACKAGE)-doc.omf > $@
+ test -s $@ || rm $@
+
+omf : $(PACKAGE)-doc.omf $(PACKAGE)-man.omf
+install-omf : omf zziplib.xml zzipmmapped.xml zzipfseeko.xml
+ : "not installed by default anymore - 'make install-doc' has one OMF"
+ $(mkinstalldirs) $(DESTDIR)$(pkgomfdir)
+ $(INSTALL_DATA) $(PACKAGE)-doc.omf $(DESTDIR)$(pkgomfdir)/
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)
+ $(INSTALL_DATA) $(srcdir)/zziplib-manpages.xml \
+ $(DESTDIR)$(pkgdocdir)/xml/manpages.xml
+ $(INSTALL_DATA) zziplib.xml zzipmmapped.xml zzipfseeko.xml \
+ $(DESTDIR)$(pkgdocdir)/xml/
+ $(INSTALL_DATA) $(PACKAGE)-man.omf $(DESTDIR)$(pkgomfdir)/
+ - test ".$(DESTDIR)" != "." || scrollkeeper-update -v
+
+# ----------------------------------------------- mksite.sh for the main html
+site.htm : body.htm
+ cp $(srcdir)/body.htm site.htm
+site.html : body.htm site.htm mksite.sh $(htm_FILES) $(htms_FILES)
+ cp $(srcdir)/body.htm site.htm
+ perl $(srcdir)/mksite.pl $(mksite_sh_args) site.htm || \
+ $(SHELL) $(srcdir)/mksite.sh $(mksite_sh_args) site.htm
+
+changes.htm : $(top_srcdir)/ChangeLog Makefile
+ echo "<pre>" > $@ ; cat $(top_srcdir)/ChangeLog \
+ | sed -e "s,\\&,\\&amp\\;,g" \
+ -e "s,<,\\&lt\\;,g" -e "s,>,\\&gt\\;,g" \
+ -e "/^[A-Z].*[12][09][09][09]/s,\\(.*\\),<b>&</b>," \
+ -e "/^[0-9]/s,\\(.*\\),<b>&</b>," >> $@ ; echo "</pre>" >>$@
+
+# ----------------------------------------------- create pdf via docbook xml
+# sorry, the xmlto / docbook-xsl are too broken to rebuild the PDF anymore
+
+zzip.xml : $(htm_FILES) zziplib.xml make-dbk.pl
+ : '@PERL@ make-dbk.pl $(htm_FILES) zziplib.xml >$@'
+ @PYTHON@ $(srcdir)/zzipdoc/htm2dbk.py $(htm_FILES) zziplib.xml >$@
+ test -s "$@" || rm "$@"
+
+zzip.html : zzip.xml
+ xmlto html-nochunks zzip.xml
+zzip.pdf : zzip.xml
+ xmlto pdf zzip.xml
+
+zziplib.pdf : $(htm_FILES) $(srcdir)/zziplib-master.dbk mksite.pl
+ cp $(srcdir)/zziplib-master.dbk zziplib.docbook
+ xmlto pdf zziplib.docbook ; rm zziplib.docbook
+ test -s zziplib.pdf
+
+pdfs : zziplib.pdf
+
+# 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/Build/source/libs/zziplib/zziplib-src/docs/README.MSVC6 b/Build/source/libs/zziplib/zziplib-src/docs/README.MSVC6
new file mode 100644
index 00000000000..ca7d05d9cf3
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/README.MSVC6
@@ -0,0 +1,137 @@
+To compile zziplib with MSVC++ 6 you can use the workspace and project
+files shipped along with the zziplib tarball in the msvc6/ directory.
+This will save you most of the following steps, atleast skip step 1.
+
+Step 1: create zziplib workspace file
+
+- Create a workspace and a project file for "zzip".
+- Add all .c and .h files in the zzip/ directory. Yes, all.
+- Add the toplevel directory (containing the zzip/ directory) as an
+ "Additional Include Directory" to the search path. Best do this in
+ -> Project -> Settings -> Tab: C/C++
+ -> Category: Preprocessor -> "Additional Include Directories".
+ This is a comma-separated list, in the workspace files shipped along
+ with the zziplib tarball, you will see ".." in there where ".." (or ..\..)
+ is the path to the toplevel directory of the unpacked sources.
+- if you did choose "DLL" as a project type then you will automatically
+ see a define _USRDLL and ZZIP_EXPORTS in (this is just a hint)...
+ -> Project -> Settings -> Tab: C/C++
+ -> Category: Preprocessor -> "Preprocessor Definitions".
+- remove any LIB imports other than "kernel32.lib"
+ -> Project -> Settings -> Tab: Link
+ -> Category: Input -> "Object/Library Modules"
+
+Step 2: add zlib dependencies of zziplib.dll
+
+- if you do not have installed zlib in the system then you may want to
+ download "lib" + "bin" parts from http://gnuwin32.sf.net/packages/zlib.htm
+ (I found this msvcrt package via a reference at http://www.zlib.org)
+- suppose you have the zlib.h file in "D:\include" and the libz.lib file
+ is in "D:\lib" then we need to add those dependencies to the project.
+- add the path to zlib.h as an "Additional Include Path", best do this in
+ -> Project -> Settings -> Tab: C/C++
+ -> Category: Preprocessor -> "Additional Include Directories".
+ This is a comma-separated list, after you have changed it, it might
+ look like "..,.,D:\include" (for ".." part see description in Step 1)
+- That is enough to build a zziplib.lib, in order to create a zziplib.dll
+ we need to resolve its linker dependencies as well, best do this in
+ -> Project -> Settings -> Tab: Link
+ -> Category: Input -> "Object/Library Modules"
+ This is a space separated list (!!), add "libz.lib" there, so after
+ changing it it might look like "kernel32.lib libz.lib". Also modify
+ -> Project -> Settings -> Tab: Link
+ -> Category: Input -> "Additional Library Path"
+ which is usually empty. After changing it, it might contain "D:\lib".
+- Also add ZZIP_DLL or ZZIP_EXPORTS for dllspec(exports), best do this in
+ -> Project -> Settings -> Tab: C/C++
+ -> Category: Preprocessor" -> "Preprocessor Definitions".
+ After changing it, it might look like
+ "NDEBUG,WIN32,_WINDOWS,_MBCS,_USRDLL,ZZIP_EXPORTS"
+
+Step 3: example binaries to link with zziplib.dll
+
+- dynamic linking is best to avoid any copyright problems, the "Lesser GPL"
+ does not restrict usage of zziplib for the case of a separated zzip.dll
+- the example workspace builds two zziplib libraries, where zziplib.lib
+ points to the staticlink variant and zzip.lib to the dynalink variant
+ which will add a dependency on zzip-1.dll being in the PATH
+- the example binaries shipped with zziplib tarball do only have a single
+ .c file per output .exe, we pick zzcat.exe to guide you through.
+- if you do not use our shipped project files, create a project "zzcat"
+ and add "bins/zzcat.c" in there.
+- adjust the "Additional Include Directories":
+ -> Project -> Settings -> Tab: C/C++
+ -> Category: Preprocessor -> "Additional Include Directories".
+ like in Step 1 add the path to "./zzip" owning the zziplib headers.
+ We do _not_ need the zlib headers to compile "zzcat.exe", so it might
+ just look like ".." (or "..\.." or "..\zziplib-0.10.82")
+- adjust the "Object/Library Modules"
+ -> Project -> Settings -> Tab: Link
+ -> Category: Input -> "Object/Library Modules"
+ adding "zzip.lib libz.lib" with a space. The result might look like
+ "kernel32.lib zzip.lib libz.lib" or "kernel32.lib zziplib.lib libz.lib".
+- adjust the "Additional Library Path"
+ -> Project -> Settings -> Tab: Link
+ -> Category: Input -> "Additional Library Path"
+ and add both zziplib libpath and libz libpath, separated by comma, i.e.
+ ".\Release,D:\lib" or ".\Debug,D:\lib"
+
+Step 4: Customization
+- have a look at the info parts that can be put into the DLL project:
+ -> Project -> Settings -> Tab: Link
+ -> Category: Output -> "Version Information"
+ e.g. Major: "10" Minor: "82" for Release 0.10.82 of zziplib
+ -> Project -> Settings -> Tab: Resources -> "Language"
+ or just ignore the value when no messages are there
+ -> Project -> Settings -> Tab: Link
+ -> Category: General -> "Output Filename"
+ e.g. "zzip-1.dll" instead of "zzip.dll" for this first generation
+ (needs also to rename dll dependencies from "zzip.lib" to "zzip-1.lib")
+- there are a few defines that trigger extra code in zziplib, e.g.
+ ZZIP_HARDEN - extra sanity check for obfuscated zip files
+ ZZIP_CHECK_BACKSLASH_DIRSEPARATOR - to check for win32-like paths
+ (for the magic part within a zip archive we always assume a "/" separator)
+ ZZIP_USE_ZIPLIKES - not only do magic checks for ".zip" files to
+ be handled like directories, also do that for a few other zip documents
+ ZZIP_WRAPWRAP - if there problems on unusual targets then try this one.
+ -> Project -> Settings -> Tab: C/C++
+ -> Category: Preprocessor" -> "Preprocessor Definitions".
+
+Step 5: Testing
+- copy the *.dll and *.exe files from msvc6/Release/ to a place reachable
+ from your PATH (perhaps d:\bin), or even simpler, go the other way round,
+ copy the file test/test.zip to the msvc6/Release/ directory.
+- open a command window (usually with a "MSDOS" symbol) and go the
+ directory containing the test.zip (e.g. cd zziplib-0.10.82/msvc6/Release)
+- run `zzcat test/README` which should extract the file README from the
+ test.zip archive and print it to the screen. Try `zzdir test` to see
+ that it was really a compressed file printed to the screen.
+- If it works then everything is alright round zziplib which is a good
+ thing to know when there are other problems
+- at the time of writing (0.10.82 of zziplib), the set of bin files are
+ precompiled with msvc6 and pushed to the download center at sourceforge.
+
+cheers, -- guido
+
+# finally, the older description for zziplib 0.10.5x
+
+To build zziplib you need to add the path to zlib to the include directories
+search path. You find this under
+
+ Project, Settings, C/C++, Preprocessor, Additional Include Directories.
+
+Example:
+You have installed zlib to D:\zlib. You then change the edit box
+ Additional Include Directories
+from
+ ..
+to
+ ..,D:\zlib
+
+
+Included are two project files for zziplib. One that creates
+zziplib as a DLL, and one that creates zziplib as a static library.
+The DLL version is compiled with multi-threaded support. The static library
+version is currently set to link with libc(d).lib, i.e. only single-threaded
+CRT. If this does not suit your needs, you can change this under
+ Project, Settings, C/C++, Code Generation, Use run-time library.
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/README.SDL b/Build/source/libs/zziplib/zziplib-src/docs/README.SDL
new file mode 100644
index 00000000000..64173359415
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/README.SDL
@@ -0,0 +1,134 @@
+WARNING:
+ The following instructions are outdated.
+ They refer back to 16. Dezember 2002 with zziplib version 0.10.66.
+ Most things refer to MSVC which have a different README
+ (and there are msvc project files being shipped along)
+ The rest is mainly an example program that you can use as a
+ boilerplate in your souce code - may be just copy and use.
+
+---------------------------------------------------------------------
+16122002, Thomas.Eder@nmi.at, Using the zziplib library with SDL
+
+
+PREREQUISITES
+
+ Tested versions:
+ zziplib 0.10.66 (preview), SDL 1.2.5, Win32, MSVC6
+
+ Homepages (download)
+ zziplib.sourceforge.net (zziplib-0.10.66.tar.gz)
+ www.libsdl.org (SDL-devel-1.2.5a-VC6.zip)
+
+ Also you have to get zlib, I used
+ from SDL_image-1.2.2.zip in VisualC.zip:
+ zlib.lib (12.7.1998, 34674 bytes)
+ zlib.h ( 9.7.1998, 41791 bytes, 1.1.3)
+ zconf.h ( 8.7.1998, 8089 bytes)
+
+ from SDL_image-devel-1.2.2-VC6.zip:
+ zlib.dll ( 5.4.2001, 53760 bytes, 1.1.3.1)
+
+ Maybe you should get the latest version (currently 1.1.4) from
+ http://gnuwin32.sourceforge.net/install.html
+ (see notes at end of page!)
+
+
+CREATING zzlib.dll/zzlib.lib
+
+ Copy your versions of zlib.lib, zlib.h and zconf.h to the zzlib
+ directory.
+ In MSVC (start zziplib.dsw)
+ Add zlib.lib to the files for the zziplib_DLL project.
+ Add ZLIB_DLL to the preprocessor definitions.
+
+ Set the active project and the active configuration to create zziplib.dll
+ and zziplib.lib (I created and used the release version).
+
+
+USING zzlib WITH SDL
+
+ Include/add the following files to your SDL-Project
+ (put them in proper directories, etc.):
+
+ Header files:
+ zconf.h
+ zlib.h
+ zzip.h
+ zzip-conf.h
+ zzip-io.h
+ zziplib.h
+ zzip-msvc.h
+ zzip-stdint.h
+
+ Libraries:
+ zlib.lib
+ zziplib.lib
+
+ DLLs:
+ zlib.dll
+ zziplib.dll
+
+ you may also want to use
+ SDL_rwops_zzip.c
+ SDL_rwops_zzip.h
+
+
+ For compiling it should be sufficient to use
+ #include <zziplib.h>
+ in the files where you use zziplib-functions.
+
+
+NOTE
+
+ It is possible to use both original (unzipped) and zipped versions of files,
+ and zziplib will take one of them (depending on the modes when calling
+ zziplib).
+
+ But this didn't work for all of my original files, so I suggest using zipped
+ files only (and remove the original unzipped files, so zziplib doesn't try to
+ open the original version).
+
+
+HINT
+
+ When opening many files from a zip, its faster to open the zip-directory
+ only once, and not for every file access. You may want to modify
+ SDL_rwops_zzip for this to get code like:
+
+
+ SDL_Surface* image;
+ SDL_RWops* rw;
+ SDL_Surface* temp1 = NULL; //default > NULL > error
+ SDL_Surface* temp2 = NULL; //default > NULL > error
+
+ //last param may be used for err return
+ ZZIP_DIR* zzipdir = zzip_dir_open( "figures.zip", NULL );
+
+ ZZIP_FILE* zfile = zzip_file_open(zzipdir, "f1.bmp", ZZIP_CASELESS);
+
+ if (zfile)
+ {
+ rw = SDL_RWFromZZIP(zfile); //modified version
+ if (rw)
+ {
+ temp1 = IMG_Load_RW(rw, 0);
+ SDL_FreeRW(rw);
+ }
+ int zret = zzip_file_close( zfile );
+ }
+
+ zfile = zzip_file_open(zzipdir, "f2.bmp", ZZIP_CASELESS);
+ if (zfile)
+ {
+ rw = SDL_RWFromZZIP(zfile); //modified version
+ if (rw)
+ {
+ temp2 = IMG_Load_RW(rw, 0);
+ SDL_FreeRW(rw);
+ }
+ int zret = zzip_file_close( zfile );
+ }
+
+ //.. etc
+
+ zzip_dir_close( zzipdir );
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/body.htm b/Build/source/libs/zziplib/zziplib-src/docs/body.htm
new file mode 100644
index 00000000000..296ab4840cc
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/body.htm
@@ -0,0 +1,108 @@
+<html><head><title>zziplib <!--$title?--> </title>
+<link rel="stylesheet" type="text/css" href="sdocbook.css" />
+ <style>
+ a:link { text-decoration : none ; color : #000080 ; }
+ a:visited { text-decoration : none ; color : #200060 ; }
+ .justify { text-align : justify ; }
+ .navlist { background-color : #F0F0F0 ;
+ width : 9em ; speak : none ; }
+ .navprint { pause-after : 200ms ; speak : spell-out ; }
+ body { background-color : white ; }
+ .P { text-align : justify ; margin-right: 1em ;
+ margin-left: 1em ; }
+ .BLOCKQUOTE { text-align : justify ; margin-right: 3em ;
+ margin-left: 3em ; }
+ .PRE { margin-right: 2em ;
+ margin-left: 2em ; }
+ .DT { font-weight : bold ; }
+ .DD { text-align : justify ; margin-right: 1em ; }
+ </style>
+</head><body>
+<!--mksite:sectioninfo--> <!--mksite:nosimplevars-->
+<table width="100%"><tr valign="top"><td class="navlist">
+<center><sub>
+ <!--mksite:printerfriendly-->
+ <a href="${printerfriendly:=site.htm}" title="printer friendly version">
+ <img alt="printer / text mode version" width="8" height="8" border="0" /></a>
+ </sub> &nbsp;
+ <big><big><big><b>
+ <font color="#800080"><sup>Z</sup>ZIP<sub>lib</sub></font>
+ </b></big></big></big>
+<br><big><b> <!--$VERSION--> </b></big>
+</center>
+<hr><a href="zzip-index.html">Library</a>
+<br>-<a href="zzip-zip.html"> ZIP Access</a>
+<br>-<a href="zzip-file.html"> Transparently</a>
+<br>-<a href="zzip-sdl-rwops.html"> SDLrwops <small>Example</small></a>
+<br>-<a href="zzip-extio.html"> ext/io <small>Customization</small></a>
+<br><><a href="zzip-xor.html"> xor/io <small>Obfuscation</small></a>
+<br><><a href="zzip-crypt.html"> zip/no <small>Encryption</small></a>
+<small><a href="zzip-cryptoid.html">(2)</a></small>
+<br>-<a href="zzip-api.html"> Library API</a>
+<br><><a href="zzip-basics.html"> basics</a></u>
+<><a href="zzip-extras.html"> extras</a></u>
+<br>=<a href="zzip-parse.html">Parsing ZIPs</a>
+<br>-<a href="64on32.html"> 64on32 extras</a>
+<br>-<a href="future.html"> Next To Come</a> <br> <>
+<small><a href="fseeko.html"> fseeko </a></small>
+<small><a href="mmapped.html"> mmapped </a></small>
+<small><a href="memdisk.html"> memdisk </a></small>
+<br>-<a href="configs.html"> Config Helpers</a>
+<br>-<a href="sfx-make.html"> Making a zip/exe</a>
+<br>=<a href="history.html">Hints And Links</a>
+<br>-<a href="referentials.html"> Referentials</a>
+<br>-<a href="functions.html"> Functions List..</a>
+<br> &nbsp; -<a href="zziplib.html"> zziplib.*</a>
+<br> &nbsp; -<a href="zzipmmapped.html"> zzipmmapped.*</a>
+<br> &nbsp; -<a href="zzipfseeko.html"> zzipfseeko.*</a>
+<!--START-->
+<br> &nbsp; -<a href="man/index.html"><small> unix man pages</small></a>
+<!--ENDS-->
+
+<br>&nbsp
+<br>&nbsp;
+<br><small><a href="faq.html"> faq </a></small>
+<small><><a href="notes.html"> notes </a></small>
+<small><><a href="zip-php.html"> zip-php </a></small>
+<hr><a href="download.html"> Download Area </a>
+<br><><a href="developer.html"> Developer Area </a>
+<br><><a href="https://github.com/gdraheim/zziplib"> GitHub Project</a>
+<br><><a href="http://sourceforge.net/projects/zziplib"> Old SF Project</a>
+<br><><a href="http://zziplib.sourceforge.net"> zziplib.sf.net
+ <small><i>Home</i></small></a>
+
+<br><><a href="changes.html"> ChangeLog</a>
+<br><small><a href="copying.html"> LGPL/MPL license</a></small>
+<br>&nbsp;
+<hr>
+<center><!--START-->
+ <a href="http://sourceforge.net/project/?group_id=6389">
+ <img src="http://sourceforge.net/sflogo.php?group_id=6389&type=2"
+ border="0" alt="sourceforge.net" width="125" height="37">
+ </a>
+<br><small><a href="site.html">-sitemap-</a></small>
+</center><!--ENDS-->
+
+<p align="right"><small>
+generated <!--$today-->
+</small>
+<br> <small>(C)</small> Guido Draheim
+<br><i> guidod<small>@</small>gmx.de</i>
+</p>
+<!--mksite:emailfooter:guidod@gmx.de?subject=zzip:-->
+
+<p align="right"><small><small>
+ formatted by <a href="http://zziplib.sf.net/mksite">mksite.sh</a>
+</p>
+
+<p><b>as xml:</b></p>
+<hr><a href="zzip-index.xml">Library</a>
+<br>-<a href="64on32.xml"> 64on32 extras</a>
+<br>-<a href="future.xml"> Next To Come</a> <br> <>
+</td><td>
+<blockquote style="background-color: #FDB; float: right; border: 1px solid black; padding: 0.5em 2em">
+ Now hosted on <a href="https://github.com/gdraheim/zziplib"
+ style="font-weight: bold">github.com/gdraheim/zziplib</a>
+</blockquote>
+
+</td></tr></table></body></html>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/configs.htm b/Build/source/libs/zziplib/zziplib-src/docs/configs.htm
new file mode 100644
index 00000000000..0191c17e0ab
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/configs.htm
@@ -0,0 +1,164 @@
+<section> <date> February 2003 </date>
+<h2> Configuration </h2> of other projects using zziplib
+
+<!--border-->
+
+<P>
+ If using the zziplib with other project then you can use a number
+ of possibility to configure and link. The zziplib had been usually
+ included within the projects that made use of it - some did even
+ pick up the advantage to be allowed to staticlink in a limited
+ set of conditions. Recently however, the zziplib is shipped as a
+ standard library of various linux/freebsd distros - mostly for
+ the usage by the php-zip module. This allows third party software
+ makers to link to the preinstalled library in the system and
+ consequently reduce the memory consumption - even more than now
+ with the zziplib being a lightweight anyway (the i386 .so is
+ usually less than 20k)
+</P>
+
+<section>
+<h3> pkg-config --libs </h3>
+
+<P>
+ Within modern software development, one should be advised to use
+ pkg-config as soon as it is available. The pkg-config helper can
+ handle a lot of problems that can usually come up with linking
+ to third party libraries in case that those link again dynamically
+ with other libraries themselves. It does correctly order the
+ list of "libs", it can throw away duplicate "-L" hints, and same
+ for cflags "-I" hints, plus it will throw away some sys-includes
+ that gcc3.2 will warn about with a false positive.
+</P>
+<P>
+ There is a number of pkg-config targets installed in the system
+ but the one you want to use is <b>pkg-config zziplib</b>.
+ Therefore, a simple Makefile could read like
+ <pre>
+ PROGRAM = my_prog
+ CFLAGS = -Dhappy `pkg-config zziplib --cflags`
+ LIBS = -Wl,-E `pkg-config zziplib --libs`
+
+ my_prog.o : my_prog.c
+ $(CC) $(CFLAGS) $&lt; -o $@
+ my_prog : my_prog.o
+ $(LINK) $&lt; $(LIBS)
+ </pre>
+</P>
+<P>
+ The `pkg-config zziplibs --libs` will usually expand to
+ something like <code>-lzzip -lz</code> which are the
+ two (!!) libraries that you need to link with - in that
+ order. The zziplib builds on top of the z-lib algorithms
+ for compression of files within the zip-archive. That's
+ the same for other lib-parts of the zziplib project as
+ well, e.g. the sdl-rwops part which does also need to
+ link with the sdl-lib - and that's where the pkg-config
+ infrastructure can be of great help. That's the reason
+ why zziplib installs a few more ".pc" files, you can
+ get a list of them like this:
+ <pre>
+ $ pkg-config --list-all | sort | grep zzip
+ zziplib zziplib - ZZipLib - libZ-based ZIP-access Library
+ zzip-sdl-config zzip-sdl-config - SDL Config (for ZZipLib)
+ zzip-sdl-rwops zzip-sdl-rwops - SDL_rwops for ZZipLib
+ zzipwrap zzipwrap - Callback Wrappers for ZZipLib
+ zzip-zlib-config zzip-zlib-config - ZLib Config (for ZZipLib)
+ </pre>
+</P><P>
+ The two entries like "zzip-sdl-config" and "zzip-zlib-config"
+ happen to be ".pc" files for the libz.so and libSDL.so that
+ were seen at configure-time of zziplib - you may want to reuse
+ these in your projects as well whenever you need to link to
+ either of zlib or libsdl even in places where there is no direct
+ need for zziplib. It basically looks like:
+ <pre>
+ $ pkg-config zzip-zlib-config --modversion
+ 1.1.4
+ $ pkg-config zzip-zlib-config --libs
+ -lz
+ </pre>
+</P>
+
+</section><section>
+<h3> zzip-config </h3>
+<P>
+ The pkg-config ".pc" files are relatively young in the history of
+ zziplib. A long time before that there was the `zzip-config`
+ script installed in the system. These `*-config` were common
+ before the pkg-config came about, and in fact the pkg-config
+ infrastructure was invented to flatten away the problems of
+ using multiple `*-config` scripts for a project. As long as you
+ do not combine multiple `*-config`s then it should be well okay
+ to use the `zzip-config` directly - it does also kill another
+ dependency on the `pkg-config` tool to build your project, the
+ zziplib is all that's needed.
+</P>
+<P>
+ In its call-structure the `zzip-config` script uses the same
+ options as `pkg-config`, (well they are historic cousins anyway).
+ and that simply means you can replace each call above like
+ `pkg-config zziplib...` with `zzip-config...`.
+
+ <pre>
+ PROGRAM = my_prog
+ CFLAGS = -Dhappy `zzip-config --cflags`
+ LIBS = -Wl,-E `zzip-config --libs`
+
+ my_prog.o : my_prog.c
+ $(CC) $(CFLAGS) $&lt; -o $@
+ my_prog : my_prog.o
+ $(LINK) $&lt; $(LIBS)
+ </pre>
+</P>
+<P>
+ Be informed that the zzip-config script is low-maintained and
+ starting with 2004 it will be replaced with a one-line script
+ that simply reads `pkg-config zziplib $*`. By that time the
+ rpm/deb packages will also list "pkgconfig" as a dependency
+ on the zziplib-devel/zziplib-dev part.
+</P>
+
+</section><section>
+<h3> autoconf macro </h3>
+
+<P>
+ There is currently an autoconf macro installed along into
+ the usual /usr/share/aclocal space for making it easier for
+ you to pick up the configure-time cflags/libs needed to
+ build/link with zziplib. In any way it does look like
+ this:
+ <pre>
+ dnl PKG_CHECK_ZZIPLIB(ZSTUFF, min-version, action-if, action-not)
+ AC_DEFUN([PKG_CHECK_ZZIPLIB],[dnl
+ PKG_CHECK_MODULES([$1], [zziplib $2], [$3], [$4])])
+ </pre>
+</P>
+<P>
+ You are strongly advised to take advantage of the pkgconfig's
+ macro directly - you can find the macro in
+ <code>/usr/share/aclocal/pkg.m4</code> and it allows to
+ combine the flags of a list of library modules that you
+ want to have. If it is only zziplib, than you could simply
+ use this in your configure.ac:
+<pre>
+ <b>PKG_CHECK_MODULES</b>([<b>ZZIP</b>],[zziplib &gt;= 0.10.75])
+ </pre>
+</P><P>
+ which will provide you with two autoconf/automake variables
+ named <b><code>ZZIP_CFLAGS</code></b> and <b><code>ZZIP_LIBS</code></b>
+ respectively.
+</P>
+<P>
+ Up to 2004, the macro in zziplib.m4 will be however carry
+ a copy of the pkg.m4 so that you do not need another
+ dependency for your software project. The macro is called
+ like shown above PKG_CHECK_ZZIPLIB and you would call it
+ like
+<br><code>&nbsp;&nbsp;&nbsp;&nbsp;
+ PKG_CHECK_ZZIPLIB([ZZIP],[0.10.75])</code><br>
+ which will give you the two autoconf/automake variables
+ as well, <code>ZZIP_CFLAGS</code> and <code>ZZIP_LIBS</code>
+</P>
+
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/copying.htm b/Build/source/libs/zziplib/zziplib-src/docs/copying.htm
new file mode 100644
index 00000000000..2f0c8c96d79
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/copying.htm
@@ -0,0 +1,113 @@
+<section> <date> 2004 </date>
+<h2> COPYING - license information </h2> the public license terms
+
+<P>
+ The zziplib is a small library that allows for some parts of
+ obfuscation. This is very handy in commercial projects which tend
+ to incorporate a copy into their source tree. And with
+ <a href="zzip-xor.htm">obfuscation</a> it is often advisable
+ to staticlink the zziplib part and `strip` the symbols from
+ the resulting binary - in order to obfuscate the usage of a
+ standard library for semi-`encryption` of data files.
+</P>
+
+<P>
+ In the past I have been modifying the original LGPL license
+ with a text that allows staticlinking thereby taking over a
+ few paragraphs from the MPL as restrictions to do so, just to
+ defend against improper usage. However I kept being asked
+ legalese questions since most people do not want to interpret
+ added text either and on their own without a lawyer. However
+ that accounts to me as well.
+</P>
+<P>
+ The public license(s) are simply there to protect me and
+ my work, none of this is fixed and it is neither the only
+ possible way to get hold of a proper license. You can
+ always contact me to negotiate a special one if you do
+ need so. In most cases I will just say okay and you get
+ it for free, perhaps after some presentations I will
+ ask for som tax-reductable compensation sent to
+ a wellfare organisation (never me!).
+</P>
+<P>
+ A last hint from a friend did make me think as well, as
+ that the whole point of using standard public licenses
+ is to protect against the need to use your own lawyers
+ in the case that someone breaks the license rules. If
+ one uses a standard license then it is in the interest
+ of that big organization XY that the license will be
+ enforced and that it will be shown valid in all courts.
+ At the time of writing, no opensource license has
+ ever been discussed to an end in a court trial.
+</P>
+<P>
+ That's why at last, I decided to change the COPYING
+ details once again - and start shipping under a dual
+ MPL / LGPL license where each of them is separate
+ and restrictions apply alternatively. Remember that
+ each license is non-exclusive anyway, and I can give
+ out as many licenses as I want, here we have one as
+ MPL, then we have one as LGPL, and perhaps you ask me
+ for a third text to send you over. The public ones
+ are just there for you as a free choice which you can
+ pick without negotiations or a fee.
+</P>
+<P>
+ And yes, you will be on established legal grounds as
+ long as you restrict your usage of the library to the
+ details contained in either COPYING text. And better
+ yet, the legal possibilities have been discussed
+ a few hundred times before. You will surely find
+ good answers on the internet as well to guide you
+ to decisions in your company whether zziplib may
+ be adopted for a specific task.
+</P>
+<P>
+ The sources themselves are sent out under a dual license,
+ with both MPL and LGPL license options, and as long as
+ the MPL part is not removed then the recpient of some
+ modified sources will be entitled to the same choice
+ among the public licenses of LGPL / MPL. Note that some
+ example sources are given away under the ZLIB license
+ which is nothing more than asking for nice behavior
+ which should have been the case even without such a text.
+ <small><small>(However, it is just a fact that some people
+ happen to behave anti-social especially under pressure of
+ capitalist needs, said to lower the risks for commercial
+ success/failure of a company. You have to enforce good
+ behavior or it will be "forgotten". With a license it is
+ not just an error, it is a risk in itself to forget about it)
+ </small></small>
+</P>
+<P>
+ As for staticlinking, let us explore that a bit - there has
+ been a debate that the LGPL warrants in fact the freedom of
+ the final recipient as you must give him the original or
+ modified sources of zziplib, to allow them to modify that
+ part again, and then (re-)link to your own parts. Your own
+ parts may come in the form of precompiled objects without
+ sources (as opposed to the GPL restrictions). In here, it
+ is simply easier to use a dynamic linker that does the
+ re-linking job at startup-time of the whole project instead
+ to provide a makefile and linkage descriptions to let the
+ user do the staticlink it into a combined executable object.
+ The latter however is often needed for embedded environments
+ and it is quite of the original motivation to ask for a
+ staticlink option where in fact the LGPL does allow it anyway
+ as long as you ship all parts separatly as well.
+</P>
+
+<P>
+ The MPL defines the area of a combined work a bit differently,
+ in a way it derives some ideas from BSD'ish licenses. This
+ part does more care to protect the `Intellectual Properties`
+ of the original developers. It does ask to prominently show
+ off that you have gone to link with the work of someone else
+ in your project. Take special note of <em>"3.5 Required Notices"</em>,
+ <em>"3.6 Distribution of Executable Versions"</em> and
+ <em>"3.7 Larger Works"</em> here. Or read a lawyer text on
+ the legal result of the whole license.
+</P>
+
+</section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown-1.py b/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown-1.py
new file mode 100644
index 00000000000..aaaf39038a5
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown-1.py
@@ -0,0 +1,250 @@
+#! /usr/bin/env python3
+
+import pygments.lexers.compiled as lexer
+import optparse
+import re
+from pygments.token import Token
+import logging
+
+logg = logging.getLogger(__name__)
+
+FileComment = "FileComment"
+FileInclude = "FileInclude"
+FunctionComment = "FunctionComment"
+FunctionPrototype = "FunctionPrototype"
+
+# use the markdown lexer to identify elements
+# then filter only those we want. The returned
+# token list is more global flagging the role
+# of each token for the manual generation.
+class CppToMarkdown:
+ def __init__(self):
+ self.alldefinitions = 0
+ self.internaldefs = ["static"]
+ self.filecomment_done = ""
+ self.fileinclude_done = ""
+ self.filecomment_text = ""
+ self.fileinclude_text = ""
+ self.comment_text = ""
+ self.function_text = ""
+ self.nesting = 0
+ def split_copyright(self, text):
+ # there are two modes - the copyright starts in the first line
+ # and the source description follows or the other way round.
+ lines = text.split("\n")
+ if len(lines) <= 2:
+ return "", text
+ introtext = [lines[0]]
+ copyright = [lines[0]]
+ check1 = re.compile(r"^\s[*]\s+[(][c][C][)]")
+ check2 = re.compile(r"^\s[*]\s+\b[Cc]opyright\b")
+ empty1 = re.compile(r"^\s[*]\s*$")
+ state = "intro"
+ for i in xrange(1,len(lines)-1):
+ line = lines[i]
+ if state == "intro":
+ if empty1.match(line):
+ introtext += [ line ]
+ continue
+ if check1.match(line) or check2.match(line):
+ state = "copyrightfirst"
+ copyright += [ line ]
+ else:
+ state = "introtextfirst"
+ introtext += [ line ]
+ elif state == "copyrightfirst":
+ if empty1.match(line):
+ state = "introtextlast"
+ introtext += [ line ]
+ else:
+ copyright += [ line ]
+ elif state == "introtextfirst":
+ if check1.match(line) or check2.match(line):
+ state = "copyrightlast"
+ copyright += [ line ]
+ else:
+ introtext += [ line ]
+ elif state == "copyrightlast":
+ copyright += [ line ]
+ elif state == "introtextlast":
+ introtext += [ line ]
+ else:
+ logg.fatal("UNKNOWN STATE %s", state)
+ introtext += [lines[-1]]
+ copyright += [lines[-1]]
+ logg.debug("@ COPYRIGHT\n %s", copyright)
+ logg.debug("@ INTROTEXT\n %s", introtext)
+ return "\n".join(copyright), "\n".join(introtext)
+ def commentblock(self, text):
+ prefix = re.compile(r"(?s)^\s*[/][*]+([^\n]*)(?=\n)")
+ suffix = re.compile(r"(?s)\n [*][/]\s*")
+ empty = re.compile(r"(?s)\n [*][ \t]*(?=\n)")
+ lines1 = re.compile(r"(?s)\n [*][ ][\t]")
+ lines2 = re.compile(r"(?s)\n [*][ ]")
+ lines3 = re.compile(r"(?s)\n [*][\t][\t]")
+ lines4 = re.compile(r"(?s)\n [*][\t]")
+ text = suffix.sub("\n", text)
+ text = prefix.sub("> \\1\n", text)
+ text = empty.sub("\n", text)
+ text = lines1.sub("\n ", text)
+ text = lines2.sub("\n", text)
+ text = lines3.sub("\n ", text)
+ text = lines4.sub("\n ", text)
+ return text
+ def functionblock(self, text):
+ empty = re.compile(r"(?s)\n[ \t]*(?=\n)")
+ text = " " + text.replace("\n", "\n ")
+ text = empty.sub("", text)
+ return text
+ def functionname(self, text):
+ check1 = re.compile(r"^[^()=]*(\b\w+)\s*[(=]")
+ found = check1.match(text)
+ if found:
+ return found.group(1)
+ check2 = re.compile(r"^[^()=]*(\b\w+)\s*$")
+ found = check2.match(text)
+ if found:
+ return found.group(1)
+ return ""
+ def run(self, filename):
+ filetext = open(filename).read()
+ for line in self.process(filetext, filename):
+ print(line)
+ def process(self, filetext, filename=""):
+ section_ruler = "-----------------------------------------"
+ copyright = ""
+ for token, text in self.parse(filetext):
+ if token == FileInclude:
+ yield "## SOURCE " + filename.replace("../", "")
+ yield " #" + text.replace("\n", "\n ")
+ elif token == FileComment:
+ yield "### INTRODUCTION"
+ copyright, introduction = self.split_copyright(text)
+ yield self.commentblock(introduction)
+ elif token == FunctionPrototype:
+ name = self.functionname(text)
+ yield section_ruler
+ yield "### " + name
+ # yield '<a id="%s"></a>' % name
+ yield "#### NAME"
+ yield " " + name
+ yield "#### SYNOPSIS"
+ yield self.functionblock(text)
+ elif token == FunctionComment:
+ if text:
+ yield "#### DESCRIPTION"
+ yield self.commentblock(text)
+ else:
+ if text:
+ yield "#### NOTES"
+ print(token + " " + text.replace("\n", "\n "))
+ if copyright:
+ yield section_ruler
+ yield "### COPYRIGHT"
+ yield self.commentblock(copyright)
+ def isexported_function(self):
+ function = self.function_text.strip().replace("\n"," ")
+ logg.debug("@ --------------------------------------")
+ logg.debug("@ ALLDEFINITIONS %s", self.alldefinitions)
+ if function.startswith("static ") and self.alldefinitions < 3:
+ logg.debug("@ ONLY INTERNAL %s", function)
+ return False
+ if not self.comment_text:
+ if not self.alldefinitions:
+ logg.info("@ NO COMMENT ON %s", function)
+ return False
+ else:
+ logg.warn("@ NO COMMENT ON %s", function)
+ text = self.comment_text
+ if text.startswith("/**"): return True
+ if text.startswith("/*!"): return True
+ if text.startswith("///"): return True
+ if text.startswith("//!"): return True
+ if self.alldefinitions >= 1:
+ if text.startswith("/*"): return True
+ if text.startswith("//"): return True
+ if self.alldefinitions >= 2:
+ return True
+ logg.debug("@ NO ** COMMENT %s", self.function_text.strip())
+ defs = self.function_text
+ return False
+ def parse(self, filetext):
+ c = lexer.CLexer()
+ for token, text in c.get_tokens(filetext):
+ logg.debug("|| %s %s", token, text.replace("\n", "\n |"))
+ # completion
+ if token != Token.Comment.Preproc and self.fileinclude_done == "no":
+ yield FileInclude, self.fileinclude_text
+ if self.filecomment_text:
+ yield FileComment, self.filecomment_text
+ self.fileinclude_done = "done"
+ # parsing
+ if token == Token.Comment.Multiline:
+ if not self.filecomment_done:
+ self.filecomment_done = "done"
+ self.filecomment_text = text
+ # wait until we know it is not a function documentation
+ self.comment_text = text
+ else:
+ self.comment_text = text
+ elif token == Token.Comment.Preproc and "include" in text:
+ if not self.fileinclude_done:
+ self.fileinclude_done = "no"
+ self.fileinclude_text += text
+ self.comment_text = ""
+ elif token == Token.Comment.Preproc and self.fileinclude_done == "no":
+ if not "\n" in self.fileinclude_text:
+ self.fileinclude_text += text
+ self.comment_text = ""
+ elif token == Token.Comment.Preproc:
+ self.comment_text = ""
+ self.function_text = ""
+ elif token == Token.Operator and text == "=":
+ if not self.nesting and self.function_text.strip():
+ if self.isexported_function():
+ yield FunctionPrototype, self.function_text
+ yield FunctionComment, self.comment_text
+ self.comment_text = ""
+ self.function_text = ""
+ elif token == Token.Punctuation and text == ";":
+ self.comment_text = ""
+ self.function_text = ""
+ elif token == Token.Punctuation and text == "{":
+ if not self.nesting and self.function_text.strip():
+ if self.isexported_function():
+ yield FunctionPrototype, self.function_text
+ yield FunctionComment, self.comment_text
+ self.comment_text = ""
+ self.function_text = ""
+ self.nesting += 1
+ elif token == Token.Punctuation and text == "}":
+ self.nesting -= 1
+ self.comment_text = ""
+ self.function_text = ""
+ else:
+ if not self.nesting:
+ self.function_text += text
+ else:
+ pass # yield "|",text
+
+
+if __name__ == "__main__":
+ _o = optparse.OptionParser()
+ _o.add_option("-v", "--verbose", action="count", default=0)
+ _o.add_option("-a", "--all", action="count", default=0,
+ help="include all definitions in the output (not only /**)")
+ opt, args = _o.parse_args()
+
+ logg.addHandler(logging.StreamHandler())
+ if opt.verbose:
+ logg.setLevel(logging.WARN - 10 * opt.verbose)
+
+ c = CppToMarkdown()
+ if opt.all:
+ c.alldefinitions = opt.all
+ for arg in args:
+ c.run(arg)
+
+
+
+
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown.py b/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown.py
new file mode 100644
index 00000000000..749de359cc7
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown.py
@@ -0,0 +1,197 @@
+from __future__ import print_function
+
+import pygments.lexers.compiled as lexer
+import optparse
+import re
+from pygments.token import Token
+import logging
+
+logg = logging.getLogger(__name__)
+
+FileComment = "FileComment"
+FileInclude = "FileInclude"
+FunctionComment = "FunctionComment"
+FunctionPrototype = "FunctionPrototype"
+
+# use the markdown lexer to identify elements
+# then filter only those we want. The returned
+# token list is more global flagging the role
+# of each token for the manual generation.
+class CppToMarkdown:
+ def __init__(self):
+ self.alldefinitions = 0
+ self.internaldefs = ["static"]
+ self.filecomment_done = ""
+ self.fileinclude_done = ""
+ self.filecomment_text = ""
+ self.fileinclude_text = ""
+ self.comment_text = ""
+ self.function_text = ""
+ self.nesting = 0
+ def commentblock(self, text):
+ emptyprefix = re.compile(r"(?s)^\s*[/][*]+[ \t]*(?=\n)")
+ prefix = re.compile(r"(?s)^\s*[/][*]+([^\n]*)(?=\n)")
+ suffix = re.compile(r"(?s)\n [*][/]\s*")
+ empty = re.compile(r"(?s)\n [*][ \t]*(?=\n)")
+ lines1 = re.compile(r"(?s)\n [*][ ][\t]")
+ lines2 = re.compile(r"(?s)\n [*][ ]")
+ lines3 = re.compile(r"(?s)\n [*][\t][\t]")
+ lines4 = re.compile(r"(?s)\n [*][\t]")
+ text = suffix.sub("\n", text)
+ text = emptyprefix.sub("", text)
+ text = prefix.sub("> \\1\n", text)
+ text = empty.sub("\n", text)
+ text = lines1.sub("\n ", text)
+ text = lines2.sub("\n", text)
+ text = lines3.sub("\n ", text)
+ text = lines4.sub("\n ", text)
+ return text
+ def functionblock(self, text):
+ empty = re.compile(r"(?s)\n[ \t]*(?=\n)")
+ text = " " + text.replace("\n", "\n ")
+ text = empty.sub("", text)
+ return text
+ def functionname(self, text):
+ check1 = re.compile(r"^[^()=]*(\b\w+)\s*[(=]")
+ found = check1.match(text)
+ if found:
+ return found.group(1)
+ check2 = re.compile(r"^[^()=]*(\b\w+)\s*$")
+ found = check2.match(text)
+ if found:
+ return found.group(1)
+ return ""
+ def run(self, filename):
+ filetext = open(filename).read()
+ for line in self.process(filetext, filename):
+ print(line)
+ def process(self, filetext, filename=""):
+ for token, text in self.parse(filetext):
+ if token == FileInclude:
+ yield "## SOURCE " + filename.replace("../", "")
+ yield " #" + text.replace("\n", "\n ")
+ elif token == FileComment:
+ yield "## INTRODUCTION"
+ yield self.commentblock(text)
+ elif token == FunctionPrototype:
+ name = self.functionname(text)
+ yield "-----------------------------------------"
+ yield "### " + name
+ yield "#### NAME"
+ yield " " + name
+ yield "#### SYNOPSIS"
+ yield self.functionblock(text)
+ elif token == FunctionComment:
+ if text:
+ yield "#### DESCRIPTION"
+ yield self.commentblock(text)
+ else:
+ if text:
+ yield "#### NOTES"
+ print(token + " " + text.replace("\n", "\n "))
+ def isexported_function(self):
+ function = self.function_text.strip().replace("\n"," ")
+ logg.debug("@ --------------------------------------")
+ logg.debug("@ ALLDEFINITIONS %s", self.alldefinitions)
+ if function.startswith("static ") and self.alldefinitions < 3:
+ logg.debug("@ ONLY INTERNAL %s", function)
+ return False
+ if not self.comment_text:
+ if not self.alldefinitions:
+ logg.info("@ NO COMMENT ON %s", function)
+ return False
+ else:
+ logg.warn("@ NO COMMENT ON %s", function)
+ text = self.comment_text
+ if text.startswith("/**"): return True
+ if text.startswith("/*!"): return True
+ if text.startswith("///"): return True
+ if text.startswith("//!"): return True
+ if self.alldefinitions >= 1:
+ if text.startswith("/*"): return True
+ if text.startswith("//"): return True
+ if self.alldefinitions >= 2:
+ return True
+ logg.debug("@ NO ** COMMENT %s", self.function_text.strip())
+ defs = self.function_text
+ return False
+ def parse(self, filetext):
+ c = lexer.CLexer()
+ for token, text in c.get_tokens(filetext):
+ logg.debug("|| %s %s", token, text.replace("\n", "\n |"))
+ # completion
+ if token != Token.Comment.Preproc and self.fileinclude_done == "no":
+ yield FileInclude, self.fileinclude_text
+ if self.filecomment_text:
+ yield FileComment, self.filecomment_text
+ self.fileinclude_done = "done"
+ # parsing
+ if token == Token.Comment.Multiline:
+ if not self.filecomment_done:
+ self.filecomment_done = "done"
+ self.filecomment_text = text
+ # wait until we know it is not a function documentation
+ self.comment_text = text
+ else:
+ self.comment_text = text
+ elif token == Token.Comment.Preproc and "include" in text:
+ if not self.fileinclude_done:
+ self.fileinclude_done = "no"
+ self.fileinclude_text += text
+ self.comment_text = ""
+ elif token == Token.Comment.Preproc and self.fileinclude_done == "no":
+ if not "\n" in self.fileinclude_text:
+ self.fileinclude_text += text
+ self.comment_text = ""
+ elif token == Token.Comment.Preproc:
+ self.comment_text = ""
+ self.function_text = ""
+ elif token == Token.Operator and text == "=":
+ if not self.nesting and self.function_text.strip():
+ if self.isexported_function():
+ yield FunctionPrototype, self.function_text
+ yield FunctionComment, self.comment_text
+ self.comment_text = ""
+ self.function_text = ""
+ elif token == Token.Punctuation and text == ";":
+ self.comment_text = ""
+ self.function_text = ""
+ elif token == Token.Punctuation and text == "{":
+ if not self.nesting and self.function_text.strip():
+ if self.isexported_function():
+ yield FunctionPrototype, self.function_text
+ yield FunctionComment, self.comment_text
+ self.comment_text = ""
+ self.function_text = ""
+ self.nesting += 1
+ elif token == Token.Punctuation and text == "}":
+ self.nesting -= 1
+ self.comment_text = ""
+ self.function_text = ""
+ else:
+ if not self.nesting:
+ self.function_text += text
+ else:
+ pass # yield "|",text
+
+
+if __name__ == "__main__":
+ _o = optparse.OptionParser()
+ _o.add_option("-v", "--verbose", action="count", default=0)
+ _o.add_option("-a", "--all", action="count", default=0,
+ help="include all definitions in the output (not only /**)")
+ opt, args = _o.parse_args()
+
+ logg.addHandler(logging.StreamHandler())
+ if opt.verbose:
+ logg.setLevel(logging.WARN - 10 * opt.verbose)
+
+ c = CppToMarkdown()
+ if opt.all:
+ c.alldefinitions = opt.all
+ for arg in args:
+ c.run(arg)
+
+
+
+
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/dbk2man.py b/Build/source/libs/zziplib/zziplib-src/docs/dbk2man.py
new file mode 100644
index 00000000000..49cac4e0ff3
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/dbk2man.py
@@ -0,0 +1,460 @@
+#! /usr/bin/python3
+
+""" Converts an xml-file with docbook elements into troff manual pages.
+ The conversion uses etree expecting <refentry> elements in the input.
+ The output goes to a multiple files in manX/* subdirectories.
+"""
+
+__author__ = "Guido U. Draheim"
+
+import logging
+import os.path
+import re
+import collections
+import xml.etree.ElementTree as ET
+
+logg = logging.getLogger("dbk2man")
+
+def esc(text):
+ text = str(text)
+ text = text.replace(".", "\\&.")
+ text = text.replace("-", "\\-")
+ return text
+def unescape(text):
+ text = str(text)
+ text = text.replace('&lt;', '<')
+ text = text.replace('&gt;', '>')
+ text = text.replace('&quot;', '"')
+ text = text.replace('&amp;', '&')
+ return text
+def htm(text):
+ text = str(text)
+ text = text.replace('&', '&amp;')
+ text = text.replace('<', '&lt;')
+ text = text.replace('>', '&gt;')
+ text = text.replace('"', '&quot;')
+ return text
+def mailhref(text):
+ return re.sub("<([^<>]*@[^<>]*)>",
+ lambda x: '&lt;<a href="mailto:%s">%s</a>&gt;' % (x.group(1), x.group(1)),
+ text)
+
+OverviewEntry = collections.namedtuple("OverviewEntry", ["manpage", "manvolnum", "refpurpose"])
+
+def parse_docbook(filename):
+ tree = ET.parse(filename)
+ return tree.getroot()
+
+def dbk2(man, filenames, subdirectory = "."):
+ for filename in filenames:
+ root = parse_docbook(filename)
+ overview = docbook2(man, root, subdirectory)
+ overview2(man, overview, subdirectory, filename)
+
+def docbook2(man, root, subdirectory = "."):
+ if root.tag != "reference":
+ logg.warning("no <reference> found, not a docbook file?")
+ logg.warning("found <%s> instead", root.tag)
+ overview = {}
+ title = ""
+ for refentry in root:
+ if refentry.tag == 'title':
+ title = refentry.text
+ continue
+ if refentry.tag != 'refentry':
+ logg.warning("no <refentry> list found, not a docbook file?")
+ logg.warning("found <%s> instead", refentry.tag)
+ continue
+ overviewref = refentry2(man, refentry, subdirectory, title)
+ for filename, overviewentry in overviewref.items():
+ overview[filename] = overviewentry
+ return overview
+
+def refentryinfo2(man, refentry, title):
+ date, productname, manvolnum, refentrytitle = "", "", "", ""
+ section = refentry.find("refentryinfo")
+ if section is not None:
+ found = section.find("date")
+ if found is not None: date = found.text
+ found = section.find("productname")
+ if found is not None: productname = found.text
+ section = refentry.find("refmeta")
+ if section is not None:
+ found = section.find("refentrytitle")
+ if found is not None: refentrytitle = found.text
+ found = section.find("manvolnum")
+ if found is not None: manvolnum = found.text
+ if man:
+ header = []
+ if refentrytitle:
+ header += [ refentrytitle ]
+ if manvolnum:
+ header += [ manvolnum ]
+ if date:
+ header += [ date ]
+ if productname:
+ header += [ productname ]
+ if title:
+ header += [ title ]
+ if not header:
+ logg.warning("no <refmeta> found")
+ return ""
+ text = '.TH ' + " ".join([ '"%s"' % esc(part) for part in header])
+ return text + "\n"
+ else:
+ text = "<html><head><title>"
+ if productname or title:
+ text += "%s: " % htm(productname or title)
+ text += htm(refentrytitle)
+ if manvolnum:
+ text += "(%s)" % htm(manvolnum)
+ text += "</title>"
+ text += "\n" + '<meta name="product" content="%s" />' % htm(productname or title)
+ text += "\n" + '<meta name="refentry" content="%s" />' % htm(refentrytitle)
+ text += "\n" + '<meta name="manvolnum" content="%s" />' % htm(manvolnum)
+ text += "\n" + '<meta name="date" content="%s" />' % htm(date)
+ return text + "\n</head><body>\n"
+
+def refentrytitle2(man, refentry, title = ""):
+ refentrytitle = ""
+ section = refentry.find("refmeta")
+ if section is not None:
+ found = section.find("refentrytitle")
+ if found is not None: refentrytitle = found.text
+ refentries = [ refentrytitle ]
+ refpurpose = ""
+ section = refentry.find("refnamediv")
+ if section is not None:
+ found = section.find("refpurpose")
+ if found is not None: refpurpose = found.text
+ for found in section.findall("refname"):
+ refname = found.text
+ if refname not in refentries:
+ refentries.append(refname)
+ if not refentrytitle:
+ logg.warning("no <refentrytitle> found")
+ return ""
+ elif man:
+ text = '.SH "NAME"' + "\n"
+ text += "" + esc(", ".join(refentries))
+ text += " " + esc("-")
+ text += " " + esc(refpurpose)
+ return text + "\n"
+ else:
+ text = '<h3>Name</h3>' + "\n"
+ text += "<p>" + htm(", ".join(refentries))
+ text += " " + htm("-")
+ text += " " + htm(refpurpose)
+ text += "</p>"
+ return text + "\n"
+
+def refsynopsisdiv2(man, refentry, title = ""):
+ refsynopsisdiv = refentry.find("refsynopsisdiv")
+ if refsynopsisdiv is None:
+ logg.warning("no <resynopsisdiv> found")
+ return ""
+ if man:
+ return refsynopsisdiv2man(refsynopsisdiv, title)
+ else:
+ return refsynopsisdiv2htm(refsynopsisdiv, title)
+
+def refsynopsisdiv2man(refsynopsisdiv, title = ""):
+ text = '.SH "SYNOPSIS"' + "\n"
+ text += ".sp\n"
+ text += ".nf\n"
+ for funcsynopsis in refsynopsisdiv.findall("funcsynopsis"):
+ funcsynopsisinfo = ""
+ found = funcsynopsis.find("funcsynopsisinfo")
+ if found is not None: funcsynopsisinfo = found.text
+ if funcsynopsisinfo:
+ for info in funcsynopsisinfo.split("\n"):
+ text += '.B "%s"' % esc(info)
+ text += "\n"
+ text += ".sp" + "\n"
+ else:
+ logg.debug("no <funcsynopsisinfo> found")
+ logg.debug("\n%s", ET.tostring(funcsynopsis))
+ funcs = 0
+ for funcprototype in funcsynopsis.findall("funcprototype"):
+ item = ET.tostring(funcprototype)
+ item = str(item)
+ item = item.replace("<funcprototype>","")
+ item = item.replace("</funcprototype>","")
+ if False:
+ item = item.replace("\n", " ")
+ item = item.replace("<funcdef>","")
+ item = item.replace("</funcdef>","")
+ item = item.replace("<paramdef>",'<def>')
+ item = item.replace("</paramdef>",'<def>')
+ items = item.split("<def>")
+ text += '.BI %s' % " ".join(['"%s"' % part for part in items if part])
+ else:
+ item = item.replace("<funcdef>","")
+ item = re.sub(r"([_\w]+)</funcdef>", lambda x: "\\fI%s\\fR" % x.group(1), item)
+ item = item.replace("<paramdef>",'')
+ item = item.replace("</paramdef>",'')
+ text += item
+ text += "\n"
+ funcs += 1
+ if not funcs:
+ logg.warning("no <funcprototype> found")
+ logg.warning("\n%s", ET.tostring(funcsynopsis))
+ text += ".fi" + "\n"
+ text += ".sp" + "\n"
+ return text
+
+def refsynopsisdiv2htm(refsynopsisdiv, title = ""):
+ text = '<h3>Synopsis</h3>' + "\n"
+ text += '<pre>' + "\n"
+ for funcsynopsis in refsynopsisdiv.findall("funcsynopsis"):
+ funcsynopsisinfo = ""
+ found = funcsynopsis.find("funcsynopsisinfo")
+ if found is not None: funcsynopsisinfo = found.text
+ if funcsynopsisinfo:
+ for info in funcsynopsisinfo.split("\n"):
+ text += '<b>%s</b>' % htm(info)
+ text += "\n"
+ text += "\n"
+ else:
+ logg.debug("no <funcsynopsisinfo> found")
+ logg.debug("\n%s", ET.tostring(funcsynopsis))
+ funcs = 0
+ for funcprototype in funcsynopsis.findall("funcprototype"):
+ item = ET.tostring(funcprototype)
+ item = str(item)
+ item = item.replace("<funcprototype>","")
+ item = item.replace("</funcprototype>","")
+ item = item.replace("<funcdef>","")
+ item = re.sub(r"([_\w]+)</funcdef>", lambda x: "<b>%s</b>" % x.group(1), item)
+ item = item.replace("<paramdef>",'')
+ item = item.replace("</paramdef>",'')
+ text += item
+ text += "\n"
+ funcs += 1
+ if not funcs:
+ logg.warning("no <funcprototype> found")
+ logg.warning("\n%s", ET.tostring(funcsynopsis))
+ text += "</pre>" + "\n"
+ return text
+
+def refsections2(man, refentry, title = ""):
+ text = ""
+ for refsect in refentry.findall("refsect1"):
+ if man:
+ text += refsect2man(refsect, title)
+ text += ".sp\n"
+ else:
+ text += refsect2htm(refsect, title)
+ return text
+
+
+def refsect2man(refsect, title = ""):
+ text = ""
+ head = refsect.find("title")
+ if head is not None:
+ text += '.SH "%s"' % (esc(head.text.upper()))
+ text += "\n"
+ for para in list(refsect):
+ if para.tag == 'title':
+ continue
+ if para.tag == 'para':
+ text += para2man(para) + "\n"
+ text += ".sp\n"
+ continue
+ if para.tag == 'itemizedlist':
+ for item in list(para):
+ text += para2man(item) + "\n"
+ text += ".sp\n"
+ continue
+ logg.warning("unknown para <%s>", para.tag)
+ return text
+
+def refsect2htm(refsect, title = ""):
+ text = ""
+ head = refsect.find("title")
+ if head is not None:
+ text += '<h3>%s</h3>' % htm(head.text)
+ text += "\n"
+ for para in list(refsect):
+ if para.tag == 'title':
+ continue
+ if para.tag == 'para':
+ text += "<p>" + para2htm(para)
+ text += "</p>" + "\n"
+ continue
+ if para.tag == 'itemizedlist':
+ text += "<ul>" + "\n"
+ for item in list(para):
+ text += "<li><p>" + para2htm(item)
+ text += "</p></li>" + "\n"
+ text += "</ul>" + "\n"
+ continue
+ logg.warning("unknown para <%s>", para.tag)
+ return text
+
+def para2man(para):
+ item = unescape(ET.tostring(para))
+ item = str(item)
+ item = item.replace("\n", " ")
+ item = item.replace(" ", " ")
+ item = item.replace(" ", " ")
+ item = item.replace(" ", " ")
+ item = item.replace(" ", " ")
+ item = item.replace("<listitem>", "")
+ item = item.replace("</listitem>", "")
+ item = item.replace("<para>", "")
+ item = item.replace("</para>", "")
+ item = item.replace("<function>", "\\fI")
+ item = item.replace("</function>", "\\fP")
+ item = item.replace("<literal>", "\\fI")
+ item = item.replace("</literal>", "\\fP")
+ return item
+
+def para2htm(para):
+ item = unescape(ET.tostring(para))
+ item = str(item)
+ item = item.replace("\n", " ")
+ item = item.replace(" ", " ")
+ item = item.replace(" ", " ")
+ item = item.replace(" ", " ")
+ item = item.replace(" ", " ")
+ item = item.replace("<listitem>", "")
+ item = item.replace("</listitem>", "")
+ item = item.replace("<para>", "")
+ item = item.replace("</para>", "")
+ item = item.replace("<function>", "<em><code>")
+ item = item.replace("</function>", "</code></em>")
+ item = item.replace("<literal>", "<code>")
+ item = item.replace("</literal>", "</code>")
+ item = mailhref(item)
+ return item
+
+def styleinfo2(man):
+ if man:
+ styles = []
+ styles += [ ".ie \\n(.g .ds Aq \\(aq" ]
+ styles += [ ".el .ds Aq " ] # http://bugs.debian.org/507673
+ styles += [ ".nh" ] # disable hyphenation
+ styles += [ ".ad l" ] # align left, no justification
+ return "".join([ "%s\n" % part for part in styles ])
+ else:
+ return ""
+
+def refends2(man):
+ if man:
+ return ""
+ else:
+ return "</body></html>" + "\n"
+
+def refentry2(man, refentry, subdirectory = ".", title = ""):
+ if refentry.tag != "refentry":
+ logg.warning("no <refentry> found, not a docbook file?")
+ logg.warning("found <%s> instead", refentry.tag)
+ text = ""
+ text += refentryinfo2(man, refentry, title)
+ text += styleinfo2(man)
+ text += refentrytitle2(man, refentry, title)
+ text += refsynopsisdiv2(man, refentry)
+ text += refsections2(man, refentry)
+ text += refends2(man)
+
+ ### write the files
+ refentrytitle = ""
+ manvolnum = "3"
+ section = refentry.find("refmeta")
+ if section is not None:
+ found = section.find("refentrytitle")
+ if found is not None: refentrytitle = found.text
+ found = section.find("manvolnum")
+ if found is not None: manvolnum = found.text
+ #
+ refpurpose = ""
+ section = refentry.find("refnamediv")
+ if section is None:
+ logg.warning("no <refnamediv> found in <refentry> for '%s', bad docbook?", refentrytitle)
+ if not refentrytitle: raise Exception("not even a refentrytitle")
+ manpages = [ refentrytitle ]
+ else:
+ manpages = [ refname.text for refname in section.findall("refname") ]
+ found = section.find("refpurpose")
+ if found is not None: refpurpose = found.text
+ #
+ overview = {}
+ if man:
+ written = 0
+ for manpage in manpages:
+ if not refentrytitle:
+ refentrytitle = manpage
+ filename = "%s/man%s/%s.%s" % (subdirectory, manvolnum, manpage, manvolnum)
+ if manpage != refentrytitle:
+ manpagetext = ".so %s.%s\n" % (refentrytitle, manvolnum)
+ writefile(filename, manpagetext)
+ else:
+ manpagetext = text
+ writefile(filename, manpagetext)
+ written += 1
+ overview[filename] = OverviewEntry(manpage, manvolnum, refpurpose)
+ if not written:
+ manpage = refentrytitle
+ filename = "%s/man%s/%s.%s" % (subdirectory, manvolnum, manpage, manvolnum)
+ writefile(filename, manpagetext)
+ overview[filename] = OverviewEntry(manpage, manvolnum, refpurpose)
+ else:
+ manpage = refentrytitle
+ filename = "%s/%s.%s.%s" % (subdirectory, manpage, manvolnum, "html")
+ writefile(filename, text)
+ overview[filename] = OverviewEntry(manpage, manvolnum, refpurpose)
+ #
+ return overview
+
+def splitname(filename):
+ base = os.path.basename(filename)
+ name, ext = os.path.splitext(base)
+ return name
+
+def overview2(man, overview, subdirectory, docbook_filename):
+ if not man:
+ overview2htm(overview, subdirectory, docbook_filename)
+
+def overview2htm(overview, subdirectory, docbook_filename):
+ basename = splitname(docbook_filename)
+ text = "<html><head><title>%s %s</title>\n" % (htm(basename), htm("overview"))
+ text += "</head><body>\n"
+ text += "<h3>%s %s</h3>\n" % (htm(basename), htm("overview"))
+ text += "<ul>\n"
+ for filename in sorted(overview):
+ entry = overview[filename]
+ subdir_filename = os.path.basename(filename)
+ text += '<li><a href="%s">%s</a> - %s</li>' % (subdir_filename, entry.manpage, htm(entry.refpurpose))
+ text += "\n"
+ text += "</ul>\n"
+ text += "</body></html>\n"
+ filename = "%s/%s.%s" % (subdirectory, basename, "html")
+ writefile(filename, text)
+
+def writefile(filename, manpagetext):
+ dirname = os.path.dirname(filename)
+ if not os.path.isdir(dirname):
+ logg.debug("mkdir %s", dirname)
+ os.makedirs(dirname)
+ with open(filename, "w") as f:
+ f.write(manpagetext)
+ logg.debug("written %s [%s]", filename, manpagetext.split("\n", 1)[0])
+
+if __name__ == "__main__":
+ from optparse import OptionParser
+ _o = OptionParser("%prog [options] docbookfiles...")
+ _o.add_option("-o","--into", metavar="DIR", default=".",
+ help="specify base directory for output [%default]")
+ _o.add_option("-t","--make", metavar="DIR", default="man",
+ help="make 'man'/'html' output pages [%default]")
+ _o.add_option("-v","--verbose", action="count", default=0,
+ help="increase logging level [%default]")
+ opt, args = _o.parse_args()
+ logging.basicConfig(level = max(0, logging.WARNING - 10 * opt.verbose))
+ # ensure commandline is compatible with "xmlto -o DIR TYPE INPUTFILE"
+ make = opt.make
+ if args and args[0] in ("man", "html"):
+ make = args[0]
+ args = args[1:]
+ dbk2(make == 'man', args, opt.into)
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/developer.htm b/Build/source/libs/zziplib/zziplib-src/docs/developer.htm
new file mode 100644
index 00000000000..7b65b950455
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/developer.htm
@@ -0,0 +1,75 @@
+<section> <date> 2009-08-23 </date>
+<H2> Developer </H2> sourceforge SVN area
+
+<center>
+<a href="http://zziplib.svn.sourceforge.net/viewvc/zziplib/">
+ http://zziplib.svn.sourceforge.net/viewvc/zziplib/ </a>
+</center>
+
+<P>
+ The zziplib is using the Subversion repository of sourceforge
+ for development. (originally it used the cvs service but it
+ is now switched over to the svn serivce) Since 0.13.x the zziplib
+ is using the version control system as the main area to host
+ the source code in the module "zzip-0". You can get a snapshot
+ from that area anytime, the access details can be found under the
+ link above. All later releases are actually snapshots of some
+ cvs day. (Prior releases had seen too many reshuffling of the
+ build system which cvs is not the best tool to handle gracefully.
+ Since the switch to svn also refactoring can be tracked just fine).
+</P>
+<P>
+ I was using the sourceforge compilefarm to do remote testing of
+ releases for crossplatform compatibility. This included usually
+ some unix compatible platforms such as Linux, Solaris,
+ FreeBSD, Darwin/MacOSX including i386, amd64, sparc, sparc64,
+ powerpc when available. Even the latest daytoday cvs snapshots
+ should be fine for these platforms. However sourceforge has
+ shut down the compilefarm just as HP closed the teamdrive
+ service for the public. At the moment I am using the buildservice
+ at build.opensuse.org to test multiple platforms atleast with
+ the help of a "make check" minimal unittest during the rpmbuild.
+</P>
+<P>
+ In the labs of my former employer some more platforms exist but these
+ were only checked once in a few months, mostly summertime and christmas
+ season if the general workload is low. That included hp/ux but more
+ importantly a real MSVC6 installation and a few PCs with win32 flavours.
+ I do not use win32 at home! Any help in that area is greatly appreciated,
+ the zziplib was written in strict ansi-C but the build system and dll hell
+ is sometimes very weird for win32 platforms. I feel it often requires
+ experienced hands to detect the source of a problem should there be one.
+</P>
+<P>
+ Note also that I do not use PHP, there is a regular flow of questions
+ circulating around the php-zip module which is built around zziplib. But
+ I can not answer any questions about the build and installation for that.
+ It would be greatly appreciated if I can find contact to a PHP hacker
+ to whom I can forward php related mails! The php zip wrapper is not part
+ of the zziplib in any way.
+</P>
+<P>
+ Since there is an MSVC6 system in reach now, I have not been updating my
+ gcc/mingw32 installations as rigidly as most other win32 developers
+ have. I understand there are great advancements in the msys/mingw32 area
+ and the provided technology which made them follow quickly. However in
+ the labs only some older releases are used for these are called more
+ "stable". Remember that I do not use win32 at home, only crosscompile to
+ mingw32 is checked out sometimes but I know that it is somewhat different
+ than the selfhosted msys environment. Any help is greatly appreciated.
+</P>
+<P>
+ Lastly, I am trying to make the zziplib as close as possible to the
+ thing called "industrial strength". But remember that this is still
+ an opensource spare time probject. <b>I take patches</b>! Many of the
+ interesting parts of zziplib have been introduced by submission which
+ I have later integrated more heavily to make the zziplib be what it
+ was always intended for: to be a small, fast and portable library allowing
+ to use a zip file as a special variant of a data filesystem. The ext/io
+ obfuscation stuff was one of the best feature submissions so far. Thanks.
+</P>
+<P>
+ Looking forward to hear from <em>YOU</em>.
+ - <a href="mailto:guidod@gmx.de?subject=zzip:">guidod@gmx.de</a>
+</P>
+</section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-192.png b/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-192.png
new file mode 100644
index 00000000000..2207e825182
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-192.png
Binary files differ
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-64.png b/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-64.png
new file mode 100644
index 00000000000..c98b192c11e
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-64.png
Binary files differ
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/dir2index.py b/Build/source/libs/zziplib/zziplib-src/docs/dir2index.py
new file mode 100755
index 00000000000..4453802276d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/dir2index.py
@@ -0,0 +1,119 @@
+#! /usr/bin/python3
+
+""" Searches through a directory and creates an index page for it
+"""
+
+__author__ = "Guido U. Draheim"
+
+import logging
+import os.path
+import re
+import xml.etree.ElementTree as ET
+
+logg = logging.getLogger("dir2index")
+
+def esc(text):
+ text = text.replace(".", "\\&.")
+ text = text.replace("-", "\\-")
+ return text
+def unescape(text):
+ text = text.replace('&lt;', '<')
+ text = text.replace('&gt;', '>')
+ text = text.replace('&quot;', '"')
+ text = text.replace('&amp;', '&')
+ return text
+def htm(text):
+ text = text.replace('&', '&amp;')
+ text = text.replace('<', '&lt;')
+ text = text.replace('>', '&gt;')
+ text = text.replace('"', '&quot;')
+ return text
+def splitname(filename):
+ base = os.path.basename(filename)
+ name, ext = os.path.splitext(base)
+ if name.endswith(".3"): name = name[:-2]
+ return name
+
+def parse_html(filename):
+ tree = ET.parse(filename)
+ return tree.getroot()
+
+def zzip_sorted(filenames):
+ for name in filenames:
+ if "zziplib" in name:
+ yield name
+ for name in filenames:
+ if "zziplib" not in name:
+ yield name
+
+def dir2(man, dirs, into):
+ text = "<html><body>" + "\n"
+ file2name = {}
+ file2text = {}
+ for dirname in dirs:
+ for filename in os.listdir(dirname):
+ filepath = os.path.join(dirname, filename)
+ file2name[filename] = splitname(filename)
+ file2text[filename] = open(filepath).read()
+ # find the overview filenames and generate the pages order
+ overviews = []
+ for filename in file2text:
+ if " overview</title>" in file2text[filename]:
+ overviews.append(filename)
+ logg.warning("overviews = %s", overviews)
+ logg.warning("overviews = %s", [file2name[f] for f in overviews])
+ file2item = {}
+ pages = []
+ for overview in zzip_sorted(overviews):
+ if overview not in pages:
+ pages.append(overview)
+ for line in file2text[overview].split("\n"):
+ m = re.match('<li><a href="([^"]*)".*</li>', line)
+ if m:
+ filename = m.group(1)
+ if filename not in file2item:
+ file2item[filename] = line
+ if filename not in pages:
+ pages.append(filename)
+ for filename in sorted(file2name):
+ if filename not in pages:
+ pages.append(filename)
+ text += "<ul>"
+ for page in pages:
+ if page in file2item:
+ text += file2item[page]
+ elif page in overviews:
+ name = file2name[page]
+ logg.warning("page %s = %s", page, name)
+ text += '<li><a href="%s"><h4>%s</h4></a></li>' % (page, name)
+ else:
+ name = file2name[page]
+ text += '<li><a href="%s">%s</a></li>' % (page, name)
+ text += "\n"
+ text += "</ul>"
+ text += "</body></html>" + "\n"
+ writefile("%s/index.html" % into, text)
+
+def writefile(filename, manpagetext):
+ dirname = os.path.dirname(filename)
+ if not os.path.isdir(dirname):
+ logg.debug("mkdir %s", dirname)
+ os.makedirs(dirname)
+ with open(filename, "w") as f:
+ f.write(manpagetext)
+ logg.debug("written %s [%s]", filename, manpagetext.split("\n", 1)[0])
+
+if __name__ == "__main__":
+ from optparse import OptionParser
+ _o = OptionParser("%prog [options] directories...")
+ _o.add_option("-o","--into", metavar="DIR", default=".",
+ help="specify base directory for output [%default]")
+ _o.add_option("-t","--make", metavar="DIR", default="man",
+ help="make 'man'/'html' output pages [%default]")
+ _o.add_option("-v","--verbose", action="count", default=0,
+ help="increase logging level [%default]")
+ opt, args = _o.parse_args()
+ logging.basicConfig(level = max(0, logging.WARNING - 10 * opt.verbose))
+ # ensure commandline is compatible with "xmlto -o DIR TYPE INPUTFILE"
+ make = opt.make
+ dir2(make == 'man', args, opt.into)
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/download.htm b/Build/source/libs/zziplib/zziplib-src/docs/download.htm
new file mode 100644
index 00000000000..0b1c9a06123
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/download.htm
@@ -0,0 +1,56 @@
+<section> <date> 2004-05-18 </date>
+<H2> Download </H2> what to get to get it
+
+<section>
+<H4>Sourceforge File Area</H4>
+
+<center>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=6389">
+ sourceforge.net/project/showfiles.php?group_id=6389 </a>
+</center>
+
+<P>
+ All source releases and some binary releases are listed at the
+ sourceforge download area under the link show above. The sourceforge
+ file area is replicated all over the world and should be accessible
+ with highest bandwidth in all corners of the world.
+</P>
+
+</section><section>
+<H4> Which Version To Download </H4>
+
+<P>
+ Do not use 0.10.x anymore! It is listed as stable since it is the
+ only release of zziplib tested to work on a few dozen platforms.
+ However there were some problematic zip files out there that can
+ trigger segfaults. Later zzip file decoders have extra checks and
+ helper routines for that. It's just that the later zziplib have not
+ been given as many crossplatform build tets as the 0.10.x generation.
+</P>
+<P>
+ Use a 0.12.x (proto-stable) or a 0.13.x (developer) variant of
+ zziplib, especially if you intend to make heavy usage of the zip
+ decoders in specialized environments - I will not add any fixes to
+ the 0.10.x series anymore (it's deep frozen) but if you hit a
+ problem with 0.13.x I can help you quickly with a patch and official
+ bugfix release. The later versions are regulary checked crossplatform
+ atleast for <b>Linux, Solaris, FreeBSD, Darwin/MacOSX, Win32/NT</b>
+ including i386, amd64, sparc, sparc64, powerpc where available.
+</P>
+<P>
+ Note that all generations 0.10.x through 0.13.x are strictly
+ <b>backward compatible</b>. There is a core API (file and dir
+ handling) being binary compatible, which is also true for most
+ of the helper routines (data getters). Only some rarely used
+ entries are made source level compatible, and so far no one had
+ ever any problem with binary compatibility of the zziplib DLLs.
+</P>
+<P>
+ The MSVC users are strongly advised to use a a later version as
+ well since I have tested the 0.12.x/0.13.x myself and making
+ some msc binary dll releases directly - prior versions were
+ thirdparty contributions which were working smoothly since I have
+ been preparing zziplib for win32 using the gcc/mingw compile suite.
+ Please check also the <a href="developer.html">developer pages</a>.
+</P>
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/faq.htm b/Build/source/libs/zziplib/zziplib-src/docs/faq.htm
new file mode 100644
index 00000000000..0f2deb23fc5
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/faq.htm
@@ -0,0 +1,182 @@
+<section> <date> 2004 </date>
+<H2> FAQ </H2> (non)frequently asked questions
+
+<BLOCKQUOTE>
+ While using the zziplib some people come up with questions and
+ problems that need a little longer to be explained. So here is
+ a list of these notes for your information. Keep it up.
+</BLOCKQUOTE>
+<ul>
+<li> <a href="#latin-1">extended ascii characters in names of zipped files </a>
+</li>
+<li> <a href="#utf-8">unicode support for names of zipped files </a>
+</li>
+<li> <a href="#timestamps">timestamps of zipped files </a>
+</li>
+<li> <a href="#install">installation instructions </a>
+</li>
+<li> <a href="#php">php zip module installation </a>
+</li>
+<li> <a href="#license">commercial support </a>
+</li>
+</ul>
+
+<DL>
+<DT><a name="latin-1" />
+ zziplib does not support extended ascii characaters, winzip does</DT>
+<DD><P>
+ That's somehow incorrect - the ascii range is the 7bit lower plane of
+ an 8bit character encoding. The upper plane had been non-standard for
+ decades including the age when the ZIP file format was invented. The
+ first instances of pkware's zip compressor were used on DOS with a
+ codepage 437 which has a way different encoding for the upper plane
+ than today's latin-1 encoding which in fact used in <em>all</em>
+ modern operating systems. So what really see is a mismatch of
+ character encodings that you are used to.
+</P><P>
+ Even more than that the character encoding had never been specified
+ at all for the filenames in the central directory part. An alert
+ reader will however recognize that <em>each</em> file entry does
+ also have version-info field telling about the compressor that did
+ create the file entry. That version-info has an upper byte telling
+ about the host OS being in use while packaging. A heavy-weight
+ zip decoder might use that value to infer the character encoding
+ on the host OS (while compressing), to detect a mismatch to the
+ current OS (while decompressing), and going to re-code the filename
+ accordingly.
+</P><P>
+ Even more than that the zip file format has seen various extensions
+ over time that have found their place in an extra info block. There
+ are info blocks telling more about the filename / codeset. However
+ the zziplib library does not even attempt to decode a single extra
+ info block as zziplib is originally meant to be a light-weight library.
+ However one might want to put a layer on top of the structure decoding
+ of zziplib that does the necessary detection of character encodings and
+ re-coding of name entries. Such a layer has not been written so far.
+</P></DD>
+<DT><a name="utf-8" />
+ zziplib does not support any unicode plane for filenames </DT>
+<DD><P>
+ The pkware's appnote.text has an extra info block (id-8) for the
+ unicode name of the file entry but it was never actually being
+ used AFAICS. This might be related to the current developments of
+ older systems to drop usage of latin-1 encoding in the upper plane
+ of 8bit characters and instead choosing the multibyte encoding
+ according to UTF-8. This is again highly system specific.
+</P><P>
+ Basically, you would need to instruct the compressor to use
+ UTF-8 encoding for the file-entries to arrive at a zip archive
+ with filenames in that specific character encoding. Along with
+ this zip archive one can switch the application into utf-8 usage
+ as well and take advantage of filename matches in that encoding.
+ This will make it so there is not mismatch in character encoding
+ and implicit re-coding being needed.
+</P></DD>
+<DT><a name="timestamps" />
+ zziplib does not return stat values for file timestamps </DT>
+<DD><P>
+ That's correct and again a re-coding problem. The original
+ timestamp in each file entry is in DOS format (i.e. old-FAT).
+ The stat value is usually expected to be in POSIX format. The
+ win32 API has an extra function for conversion but none of the
+ unix compatibles has one, so it would be needed to ship a
+ conversion function along with zziplib.
+</P><P>
+ However the zziplib is intended to be light-weight system and
+ used largely for packaging data for an application. There it
+ is not used strictly as a variant of Virtual File System (vfs)
+ that would need to map any information from the zip file system
+ to native host system. Of course applications are free to cut
+ out the DOS file timestamp and re-code it on their own. It's
+ just that zziplib does not provide that re-coding originally.
+</P></DD>
+<DT><a name="install" />
+ how can one install the zziplib package </DT>
+<DD><P>
+ The zziplib project is opensource which effectly gives two ways of
+ installing the package: one can download the source archive and use
+ a C compiler to derive a binary executable for whatever computer
+ it needs to be on (see the platform compatibility list). This is
+ the preferred way but for convenience one can download a binary
+ installation archive with precompiled executables.
+</P><P>
+ The current project uses autoconf/automake for cross platform
+ support which includes most unix compatible systems and their
+ native C compilers. The derivates of the GNU C compiler (gcc) have
+ replaced most of these native C compilers in the past years. The
+ <a href="http://www.mingw.org">mingw32</a> project has ported a
+ unix born C compiler to win32 and zziplib can be compiled with
+ it for the various win32 platforms.
+</P><P>
+ There exist some C compilers which can not be embedded easily into
+ a unix compilation framework. The zziplib source archive ships with
+ project files for MSVC6 and MSVC6 (Microsoft Visual C). Adapting
+ these project files might help with installation problems of the
+ DLL hell on win32 platforms. There exist no sufficient guidelines to
+ mix binary helper libraries for many applications on windows.
+</P><P>
+ There exists win32 binary archives as zip files on the download area
+ of zziplib (MSI is always on my wishlist). Including the project as
+ a helper library however you should not use it but instead compile
+ from source. The general library installation on unix are better,
+ the zziplib download area contains regularly some linux binary
+ archives (rpm). Many vendors of unix compatible systems provide
+ precompiled binary packages of zziplib on their own.
+</P></DD>
+<DT><a name="php" />
+ after installing zziplib the php zip module still does not work </DT>
+<DD><P>
+ Now that is one of <b>the most</b> frequently asked questions that
+ I do receive. There is just one major problem with it: I did not
+ write the php zip module (which uses zziplib) and I have no idea
+ how php modules work or how to tell apache's php sandbox to make
+ it work. Really, I do not have the slightest clue on that.
+</P><P>
+ I was posting to some php developer sites to spread awareness of
+ the fact and hopefully to find a guy that I could forward any
+ questions on the php zip module installation. But so far there is
+ nothing, it merily seems that such installation problems are in no
+ way related to zziplib anyway but exists <b>with any other module with a
+ third party library dependency</b> as well. So the answers on php forum
+ sites will ask for details of the current php and apache configuration.
+</P><P>
+ Since I do not run a php zip whatever nor any other php stuff, it's
+ just that those hints were not quite helpful to me. It would be really
+ really great if someone with a php zip background could be so nice to
+ write a short roundup of the areas to check when a php zip module
+ installation fails, so that I could post it here. Where are you?
+ Yours desperatly...&nbsp;;-)
+</P></DD>
+<DT><a name="license" />
+ how to obtain a license and support contract for a commercial project </DT>
+<DD><P>
+ The zziplib has been created as a spare time project and it is put
+ under a very easy free public license. Even for commercial projects
+ there is hardly any need to negotiate a separate license since the
+ restrictions of the GNU LGPL or MPL can be matched easily. As a
+ general hint, if the zziplib is shipped unmodified with your project
+ then you are right within the limits of the free public license.
+</P><P>
+ Sometimes the question for a personal license comes up for very
+ different reason - the need for a support contract and/or the setting
+ of functionality guarantees. The free public licenses include a safeguard
+ clause to that end, "in the hope that it will be useful,
+ but <em>without any warranty</em>; without even the implied warranty of
+ <em>merchantability</em> or <em>fitness for a particular purpose</em>."
+ Since the project was developed as a spare time project however there
+ have never been personal licenses going beyond.
+</P><P>
+ In general you can still try to negotiate a support contract but it
+ will be very costly. It is much more profitable for you to tell one
+ of your developers to have a look at the source code and ensure the
+ required functionality is there, with hands on. The source code is
+ written to be very readable, maintainable and extensible. Just be
+ reminded that the free public licenses have restrictions on shipping
+ modified binaries but I can give you a cheap personal license to
+ escape these. (Such licenses can be obtained in return for tax-deductible
+ donations to organisations supporting opensource software).
+</P></DD>
+</DL>
+
+<P> and as always - <em> Patches are welcome </em> - </P>
+</section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/fseeko.htm b/Build/source/libs/zziplib/zziplib-src/docs/fseeko.htm
new file mode 100644
index 00000000000..89c3195e36d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/fseeko.htm
@@ -0,0 +1,193 @@
+<section> <date> 2005 </date>
+<H2> zzip/fseeko </H2> zip access for stdio handle
+
+<BLOCKQUOTE>
+ These routines are fully independent from the traditional zzip
+ implementation. They assume a readonly seekable stdio handle
+ representing a complete zip file. The functions show how to
+ parse the structure, find files and return a decoded bytestream.
+</BLOCKQUOTE>
+
+<section>
+<H3> stdio disk handle </H3>
+
+<P>
+ Other than with the <a href="mmapped.html">mmapped</a> alternative
+ interface there is no need to build special handle for the zip
+ disk file. The normal stdio file handle (of type <b><code>FILE</code></b>)
+ serves as the disk access representation. You can open that stdio file
+ handle any way you want. Note however that the <code>zzipfseeko</code>
+ routines modify the access state of that file handle, especially the
+ read position.
+</P>
+
+<P>
+ To get access to a zipped file, you need a zip archive entry known
+ under the type <code>ZZIP_ENTRY</code>. This is again modelled after
+ the <code>DIR_ENTRY</code> type in being a representation of a file
+ name inside the zip central directory. To get a fresh zzip entry, use
+ <code>zzip_entry_findfirst</code>, to get the next use
+ <code>zzip_entry_findnext</code>, and do not forget to free the
+ resource with <code>zzip_entry_free</code>.
+</P>
+<PRE>
+ extern ZZIP_ENTRY* zzip_entry_findfirst(FILE* disk);
+ extern ZZIP_ENTRY* zzip_entry_findnext(ZZIP_ENTRY* entry);
+ extern int zzip_entry_free(ZZIP_ENTRY* entry);
+</PRE>
+<P>
+ These three calls will allow to walk all zip archive members in the
+ order listed in the zip central directory. To actually implement a
+ directory lister ("zzipdir"), you need to get the name string of the
+ zzip entry. This is not just a pointer: the zzip disk entry is not
+ null terminated actually. Therefore we have a helper function that
+ will <code>strdup</code> the entry name as a normal C string:
+</P>
+<PRE>
+ #include &lt;zzip/fseeko.h&gt;
+ void _zzip_dir(FILE* disk)
+ {
+ for (ZZIP_ENTRY* entry = zzip_findfirst (disk);
+ entry ; entry = zzip_findnext (entry)) {
+ char* name = zzip_entry_strdup_name (entry);
+ puts (name); free (name);
+ }
+ }
+</PRE>
+
+</section><section>
+<H3> find a zipped file </H3>
+
+<P>
+ The central directory walk can be used to find any file in the
+ zip archive. The <code>zzipfseeko</code> library however provides
+ two convenience functions that allow to jump directly to the
+ zip disk entry of a given name or pattern. You are free to use
+ the newly allocated <code>ZZIP_ENTRY</code> for later calls on
+ that handle type. Do not forget to <code>zzip_entry_free</code>
+ the handle unless the handle is consumed by a routine, e.g.
+ <code>zzip_entry_findnext</code> to hit the end of directory.
+</P>
+<PRE>
+ extern ZZIP_ENTRY* zzip_entry_findfile(FILE* disk, char* filename,
+ ZZIP_ENTRY* _zzip_restrict entry,
+ zzip_strcmp_fn_t compare);
+
+ extern ZZIP_ENTRY* zzip_entry_findmatch(FILE* disk, char* filespec,
+ ZZIP_ENTRY* _zzip_restrict entry,
+ zzip_fnmatch_fn_t compare, int flags);
+</PRE>
+<P>
+ In general only the first two arguments are non-null pointing to the
+ stdio disk handle and the file name to look for. The "entry" argument
+ is an old value and allows you to walk the zip directory similar to
+ <code>zzip_entry_findnext</code> but actually leaping forward. The
+ compare function can be used for alternate match behavior: the default
+ of <code>strcmp</code> might be changed to <code>strncmp</code> for
+ a caseless match. The "flags" of the second call are forwarded to the
+ posix <code>fnmatch</code> which we use as the default function.
+</P>
+<P>
+ If you do know a specific filename then you can just use
+ <code>zzip_entry_findfile</code> and supply the return value to
+ <code>zzip_entry_fopen</code> with the second argument set to "1"
+ to tell the function to actually consume whichever entry was given.
+ That allows you to skip an explicit <code>zzip_entry_free</code>
+ as it is included in a later <code>zzip_entry_fclose</code>.
+</P>
+<PRE>
+ #include &lt;zzip/fseeko.h&gt;
+<small>
+ /* zzipfseeko already exports this convenience function: */</small>
+ ZZIP_ENTRY_FILE* zzip_entry_ffile(FILE* disk, char* filename) {
+ return zzip_entry_fopen (zzip_entry_findfile (filename, 0, 0), 1);
+ }
+
+ int _zzip_read(FILE* disk, char* filename, void* buffer, int bytes)
+ {
+ ZZIP_ENTRY_FILE* file = zzip_entry_ffile (disk, filename);
+ if (! file) return -1;
+ int bytes = zzip_entry_fread (buffer, 1, bytes, file);
+ zzip_entry_fclose (file);
+ return bytes;
+ }
+</PRE>
+
+</section><section>
+<H3> reading bytes </H3>
+
+<P>
+ The example has shown already how to read some bytes off the head of
+ a zipped file. In general the zzipfseeko api is used to replace a few
+ stdio routines that access a file. For that purpose we provide three
+ functions that look very similar to the stdio functions of
+ <code>fopen()</code>, <code>fread()</code> and <code>fclose()</code>.
+ These work on an active file descriptor of type <code>ZZIP_ENTRY_FILE</code>.
+ Note that this <code>zzip_entry_fopen()</code> uses <code>ZZIP_ENTRY</code>
+ argument as returned by the findfile api. To open a new reader handle from
+ a disk archive and file name you can use the <code>zzip_entry_ffile()</code>
+ convenience call.
+</P>
+
+<PRE>
+ ZZIP_ENTRY_FILE* zzip_entry_ffile (FILE* disk, char* filename);
+ ZZIP_ENTRY_FILE* zzip_entry_fopen (ZZIP_ENTRY* entry, int takeover);
+ zzip_size_t zzip_entry_fread (void* ptr,
+ zzip_size_t sized, zzip_size_t nmemb,
+ ZZIP_ENTRY_FILE* file);
+ int zzip_entry_fclose (ZZIP_ENTRY_FILE* file);
+ int zzip_entry_feof (ZZIP_ENTRY_FILE* file);
+</PRE>
+
+<P>
+ In all of the examples you need to remember that you provide a single
+ stdio <code>FILE</code> descriptor which is in reality a virtual
+ filesystem on its own. Per default filenames are matched case
+ sensitive also on win32 systems. The findnext function will walk all
+ files on the zip virtual filesystem table and return a name entry
+ with the full pathname, i.e. including any directory names to the
+ root of the zip disk <code>FILE</code>.
+</P>
+
+</section><section>
+<H3> ZZIP_ENTRY inspection </H3>
+
+<P>
+ The <code>ZZIP_ENTRY_FILE</code> is a special file descriptor handle
+ of the <code>zzipfseeko</code> library - but the <code>ZZIP_ENTRY</code>
+ is not so special. It is actually a bytewise copy of the data inside the
+ zip disk archive (plus some internal hints appended). While
+ <code>zzip/fseeko.h</code> will not reveal the structure on its own,
+ you can include <code>zzip/format.h</code> to get access to the actual
+ structure content of a <code>ZZIP_ENTRY</code> by (up)casting it to
+<br><b><code>&nbsp;&nbsp;&nbsp;&nbsp;struct zzip_disk_entry</code></b>.
+</P>
+
+<P>
+ In reality however it is not a good idea to actually read the bytes
+ in the <code>zzip_disk_entry</code> structure unless you seriously know
+ the internals of a zip archive entry. That includes any byteswapping
+ needed on bigendian platforms. Instead you want to take advantage of
+ helper macros defined in <code>zzip/fetch.h</code>. These will take
+ care to convert any struct data member to the host native format.
+</P>
+<PRE>
+extern uint16_t zzip_disk_entry_get_flags( zzip_disk_entry* entry);
+extern uint16_t zzip_disk_entry_get_compr( zzip_disk_entry* entry);
+extern uint32_t zzip_disk_entry_get_crc32( zzip_disk_entry* entry);
+
+extern zzip_size_t zzip_disk_entry_csize( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_usize( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_namlen( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_extras( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_comment( zzip_disk_entry* entry);
+extern int zzip_disk_entry_diskstart( zzip_disk_entry* entry);
+extern int zzip_disk_entry_filetype( zzip_disk_entry* entry);
+extern int zzip_disk_entry_filemode( zzip_disk_entry* entry);
+
+extern zzip_off_t zzip_disk_entry_fileoffset( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_sizeof_tail( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_sizeto_end( zzip_disk_entry* entry);
+extern char* zzip_disk_entry_skipto_end( zzip_disk_entry* entry);
+</PRE>
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/functions.htm b/Build/source/libs/zziplib/zziplib-src/docs/functions.htm
new file mode 100644
index 00000000000..c69f56c937f
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/functions.htm
@@ -0,0 +1,28 @@
+<H2> Exported Functions </H2>
+<date>2006-09-21</date>
+
+<P>
+ The ZZipLib Project does already provide THREE libraries. The classic
+ zziplib.so (via "zzip/lib.h") is the most prominent one and used in
+ a number of different projects. The zzipfseeko.so ("zzip/fseeko.html")
+ and zzipmmapped.so ("zzip/mmapped.html") are technology demonstrations.
+</P>
+
+<ul>
+<li><a href="zzip/lib.h"> zzip/lib.h </a> - Main User Library </li>
+<li><a href="zzip/mmapped.h"> zzip/mmapped.h </a> - MMap Library </li>
+<li><a href="zzip/fseeko.h"> zzip/fseeko.h </a> - Fseeko Library </li>
+</ul>
+
+<P>
+ Additionally, there is a complete set of unpacked documentation - the
+ unix manual pages are translated to html manual pages.
+</P>
+
+<ul>
+<li><a href="manual">zzip man pages</a>
+</ul>
+
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/future.htm b/Build/source/libs/zziplib/zziplib-src/docs/future.htm
new file mode 100644
index 00000000000..e116429abb1
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/future.htm
@@ -0,0 +1,80 @@
+<?xml-stylesheet type="text/css" href="sdocbook.css" ?>
+<section> <date> 15. July 2002 </date>
+<h2> ZZIP Future </h2> What next to come.
+
+<section><!--border-->
+<h3> ZIP-Write </h3>
+
+<P>
+ Anybody out there who wants to program the write-support for the
+ zziplib? Actually, I just do not have the time to do it and no
+ real need to but I guess it would be nice for people as for
+ example to spit out savegame files in zipformat. The actual
+ programming path is almost obvious - start off with the zziplib
+ as it is, and let it open an existing zip-file. This will parse
+ the central directory into memory - including the file-offsets
+ for each file. Then, truncate the zip-realfile to the place that
+ the central-dir was found (identical with the end of the last
+ file). If a datafile is opened for writing, either add a new
+ entry or modify the start-offset of the existing entry to the
+ end of the zip-realfile - the old data is simply junk. Then
+ init zlib to do the deflation of the data and append it to the
+ current zip-realfile. When the zipdir-handle is getting closed
+ from write-mode, the zip's central-directory needs to be appended
+ to the file on disk. This coincides with creating a new zip-file
+ with an empty central-directory that can be spit out to disk.
+ During development, do not care about creating temp-files to
+ guard against corruption for partial writes - the usual application
+ will use the zziplib to create zip savegames in one turn, no
+ "update"-operation needs to be implemented like exists in the
+ standalone zip command utilities.
+</P>
+
+</section><section>
+<h3> readdir for subdir inside zip magicdir </h3>
+
+<P>
+ See the notes in the first paragraphs of <a href="zzip-api.html">
+ ZZIP Programmers Interface</a> description. It would add some
+ complexity for something I never needed so far. The question
+ came up with using zziplib as the backend of a dynamic webserver
+ to store the content in compressed form possibly through the
+ incarnation of a php module - and some scripted functionality
+ that walks all directories to index the files hosted. I'm not
+ going to implement that myself but perhaps someone else wants
+ to do it and send me patches for free.
+</P>
+
+</section><section>
+<h3> obfuscation example project </h3>
+
+<P>
+ A subproject that shows <b>all</b> the steps from a dat-tree
+ to a dat-zip to an obfuscated-dat along with build-files and
+ source-files for all helper tools needed to obfuscate and
+ deobfuscate, plus a sample program to use the obfuscated
+ dat-file and make some use of it. Along with some extra
+ documentation about 20..40 hours. Don't underestimate the
+ amount of work for it! (otherwise a great student project).
+</P>
+
+</section><section>
+<h3> zip/unzip tool </h3>
+
+<P>
+ The infozip tools implement a full set of zip/unzip routines
+ based on internal code to access the zip-format. The zziplib
+ has its own set of zip-format routines. Still, it should be
+ possible to write a frontend to the library that implements
+ parts (if not all) of the options of the infozip zip/unzip
+ tools. Even without write-support in zziplib it would be
+ interesting to see an normal unzip-tool that does not use
+ the magic-wrappers thereby only going off at plain zip-files.
+ On the upside, such a tool would be smaller than the infozip
+ tools since it can use the library routines that are shared
+ with other tools as well. Again - don't underestimate the
+ amount of work for it, I guess 40..80 hours as there is a lot
+ of fine-tuning needed to match the infozip model.
+</P>
+</section>
+</section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/history.htm b/Build/source/libs/zziplib/zziplib-src/docs/history.htm
new file mode 100644
index 00000000000..7250729e877
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/history.htm
@@ -0,0 +1,92 @@
+<section><date>created 1.Jun.2000, last updated 25.Apr.2002 </date>
+<h2> History and Links </h2> plus Installation and Contact Hints
+
+<!--border-->
+
+<section>
+<h3> A Bit Of History </h3>
+
+<P>
+You'll find <a href="http://www.gzip.org">gzip</a> using the same compression
+that was written by Jean-loup <a href="http://gailly.net">Gailly</a>
+for the <a href="http://www.info-zip.org">Info-Zip</a> Group
+whose <a href="http://www.info-zip.org/pub/infozip/Zip.html">Zip</a>
+program is compatible with msdos PKZIP program from
+<a href="http://www.pkware.com">PK&nbsp;Ware</a>. Then, in collaboration
+with <a href="http://www.alumni.caltech.edu/~madler">Mark Adler</a>
+he wrote the <a href="http://www.gzip.org/zlib">zlib</a>
+compression library which was later standardized in the
+<a href="ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html">
+zlib RFCs</a>, namely
+<a href="http://www.ietf.org/rfc/rfc1950.txt">RFC 1950</a>
+<a href="ftp://ftp.uu.net/graphics/png/documents/zlib/rfc-zlib.html.Z">
+zlib&nbsp;3.3</a>,
+<a href="http://www.ietf.org/rfc/rfc1951.txt">RFC 1951</a>
+<a href="ftp://ftp.uu.net/graphics/png/documents/zlib/rfc-deflate.html.Z">
+deflate&nbsp;1.3</a> and
+<a href="http://www.ietf.org/rfc/rfc1952.txt">RFC 1952</a>
+<a href="ftp://ftp.uu.net/graphics/png/documents/zlib/rfc-gzip.html">
+gzip&nbsp;4.3</a>. The free algorithm can be found in lots of places
+today including PPP packet compression and PNG picture compression.
+</P>
+
+</section><section>
+<h3> Installation </h3>
+
+<P>
+ The installation is from the source .tar.gz tarball does follow
+ the simple gnu style: type <tt>''configure && make install''</tt>
+ in the unpacked directory. This will actually perform the usual
+ sequence of <tt>''configure && make && make install''</tt>. The
+ use of <tt>''make rpm''</tt> will make rpms based on your system
+ setup, and using a decent mingw32 compiler (e.g. the crossgcc
+ from <a href="http://libsdl.org/Xmingw32">libsdl.org/Xmingw32</a>)
+ will allow you to create windows dlls using a gnu development
+ environment. MSVC and Borland support (Make-)files should be
+ easy to be derived from the <a href="Makefile.am">Makefile.am</a>
+</P>
+
+</section><section>
+<h3> Contact </h3>
+
+<P>
+ The library was developed by
+ <a href="mailto:guidod@gmx.de?subject=zziplib">
+ Guido Draheim </a> based on the library
+ <a href="http://freshmeat.net/appindex/1999/08/02/933593367.html">
+ <tt>zip08x</tt> </a>
+ by <a href="mailto:too@iki.fi"> Tomi Ollila </a> (many thanks
+ for his support of the zziplib project). He has provided
+ a good deal of testing rounds and very helpful comments.
+ It may be assumed that this library supersedes
+ <a href="http://www.iki.fi/too/sw/zip08x.readme">
+ <tt>zip08x</tt></a>, and in April 2002, he
+ has even given up copyright restrictions coming from zip08x
+ and changed the <a href="http://www.iki.fi/too/sw/zip08x.readme">zip08x</a>
+ readme to point to <a href="http://zziplib.sf.net">zziplib</a>.
+ Anyone who wants to contribute in accessing zip-archives
+ with the zlib-library is hereby kindly invited to send us
+ comments and sourcecode.
+</P>
+
+</section><section>
+<h3> Links </h3>
+
+<P>
+The <a href="zziplib.html">zziplib library</a> must be
+linked with the free <b><a href="http://www.gzip.org/zlib/">zlib</a></b>
+<a href="http://www.info-zip.org/pub/infozip/zlib">[1]</a>
+<a href="http://www.lifl.fr/PRIVATE/Manuals/gnulang/zlib">[2]</a>
+<a href="http://pobox.com/~newt">[3]</a> package originally developed
+by the <a href="http://www.info-zip.org">Info-Zip</a> Group
+and now maintained at the <a href="http://www.gzip.org">GZip</a> Group.
+As of late, the pkware appnote.txt has been revised into a whitepaper
+document named
+<a href="http://www.pkware.com/products/enterprise/white_papers/appnote.html">
+ "APPNOTE.TXT - .ZIP File Format Specification"</a>.
+Be also aware of other zzip like projects, e.g.
+<a href="http://zipios.sourceforge.net">zipios++</a> that
+mangles zip access into C++ iostream facilities.
+</P>
+
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/make-dbk.pl b/Build/source/libs/zziplib/zziplib-src/docs/make-dbk.pl
new file mode 100644
index 00000000000..e1fe56683df
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/make-dbk.pl
@@ -0,0 +1,118 @@
+#! /usr/local/bin/perl
+# this file converts simple html text into a docbook xml variant.
+# The mapping of markups and links is far from perfect. But all we
+# want is the docbook-to-pdf converter and similar technology being
+# present in the world of docbook-to-anything converters.
+
+use strict;
+
+my %o;
+
+my %file;
+my $F;
+my @order;
+
+for $F (@ARGV)
+{
+ if ($F =~ /^(\w+)=(.*)/)
+ {
+ $o{$1} = $2;
+ }else{
+ open F, "<$F" or next;
+ my $T = join ("",<F>); close F;
+ $file{$F}{text} = $T;
+ $file{$F}{orig} = $F;
+ push @order, $F;
+ }
+}
+
+$o{version} = `date` if not length $o{version};
+
+for $F (keys %file)
+{
+ $_ = $file{$F}{text};
+ s{<!--VERSION-->}{ $o{version} }gse;
+ s{</h2>(.*)}{</title>\n<subtitle>$1</subtitle>}mg;
+ s{<h2>}{<sect1 id=\"$F\"><title>}mg;
+ s{<[Pp]([> ])}{<para$1}mg; s{</[Pp]>}{</para>}mg;
+ s{<pre>}{<screen>}mg; s{</pre>}{</screen>}mg;
+ s{<h3>}{<sect2><title>}mg;
+ s{</h3>((?:.(?!<sect2>))*.?)}{</title>$1</sect2>}sg;
+ s{<!doctype [^<>]*>}{}sg;
+ s{<!DOCTYPE [^<>]*>}{}sg;
+ s{(<\w+\b[^<>]*\swidth=)(\d+\%)}{$1\"$2\"}sg;
+ s{(<\w+\b[^<>]*\s\w+=)(\d+)}{$1\"$2\"}sg;
+ s{&&}{\&amp\;\&amp\;}sg;
+ s{\$\<}{\$\&lt\;}sg;
+ s{&(\w+[\),])}{\&amp\;$1}sg;
+ s{(</?)span(\s[^<>]*)?>}{$1."phrase$2>"}sge;
+ s{(</?)small(\s[^<>]*)?>}{$1."note$2>"}sge;
+ s{(</?)(b|em|i)>}{$1."emphasis>"}sge;
+ s{(</?)(li)>}{$1."listitem>"}sge;
+ s{(</?)(ul)>}{$1."itemizedlist>"}sge;
+ s{(</?)(ol)>}{$1."orderedlist>"}sge;
+ s{(</?)(dl)>}{$1."variablelist>"}sge;
+ s{<dt\b([^<>]*)>}{"<varlistentry$1><term>"}sge;
+ s{</dt\b([^<>]*)>}{"</term>"}sge;
+ s{<dd\b([^<>]*)>}{"<listitem$1>"}sge;
+ s{</dd\b([^<>]*)>}{"</listitem></varlistentry>"}sge;
+ s{<table\b([^<>]*)>}{"<informaltable$1><tgroup cols=\"2\"><tbody>"}sge;
+ s{</table\b([^<>]*)>}{"</tbody></tgroup></informaltable>"}sge;
+ s{(</?)tr(\s[^<>]*)?>}{$1."row$2>"}sge;
+ s{(</?)td(\s[^<>]*)?>}{$1."entry$2>"}sge;
+ s{<informaltable\b[^<>]*>\s*<tgroup\b[^<>]*>\s*<tbody>
+ \s*<row\b[^<>]*>\s*<entry\b[^<>]*>\s*<informaltable\b}
+ {<informaltable}gsx;
+ s{</informaltable>\s*</entry>\s*</row>
+ \s*</tbody>\s*</tgroup>\s*</informaltable>}
+ {</informaltable>}gsx;
+ s{(<informaltable[^<>]*\swidth=\"100\%\")}{$1 pgwide=\"1\"}gs;
+ s{(<tbody>\s*<row[^<>]*>\s*<entry[^<>]*\s)(width=\"50\%\")}
+ {<colspec colwidth=\"1*\" /><colspec colwidth=\"1*\" />\n$1$2}gs;
+
+ s{<nobr>([\'\`]*)<tt>}{<cmdsynopsis>$1}sg;
+ s{</tt>([\'\`]*)</nobr>}{$2</cmdsynopsis>}sg;
+ s{<nobr><(?:tt|code)>([\`\"\'])}{<cmdsynopsis>$1}sg;
+ s{<(?:tt|code)><nobr>([\`\"\'])}{<cmdsynopsis>$1}sg;
+ s{([\`\"\'])</(?:tt|code)></nobr>}{$1</cmdsynopsis>}sg;
+ s{([\`\"\'])</nobr></(?:tt|code)>}{$1</cmdsynopsis>}sg;
+ s{(</?)tt>}{$1."constant>"}sge;
+ s{(</?)code>}{$1."literal>"}sge;
+ s{>([^<>]+)<br>}{><highlights>$1</highlights>}sg;
+ s{<br>}{<br />}sg;
+
+ s{(</?)date>}{$1."sect1info>"}sge;
+ s{<reference>}{<reference id=\"reference\">}s;
+
+ s{<a\s+href=\"((?:http|ftp|mailto):[^<>]+)\"\s*>((?:.(?!</a>))*.)</a>}
+ { "<ulink url=\"$1\">$2</ulink>" }sge;
+ s{<a\s+href=\"zziplib.html\#([\w_]+)\"\s*>((?:.(?!</a>))*.)</a>}
+ { "<link linkend=\"$1\">$2</link>" }sge;
+ s{<a\s+href=\"(zziplib.html)\"\s*>((?:.(?!</a>))*.)</a>}
+ { "<link linkend=\"reference\">$2</link>" }sge;
+ s{<a\s+href=\"([\w-]+[.]html)\"\s*>((?:.(?!</a>))*.)</a>}
+ { my $K = $1; chop $K;
+ if (not exists $file{$K}) { print STDERR "bad link $1\n"; }
+ "<link linkend=\"$K\">$2</link>" }sge;
+ s{<a\s+href=\"([\w-]+[.](?:h|c|am|txt))\"\s*>((?:.(?!</a>))*.)</a>}
+ { "<ulink url=\"file:$1\">$2</ulink>" }sge;
+ s{<a\s+href=\"([A-Z0-9]+[.][A-Z0-9]+)\"\s*>((?:.(?!</a>))*.)</a>}
+ { "<ulink url=\"file:$1\">$2</ulink>" }sge;
+
+# s{(</?)subtitle>}{$1."para>"}ge;
+
+ $_ .= "</sect1>" if /<sect1[> ]/;
+ $file{$F}{text} = $_;
+}
+
+my $n = "\n";
+
+print '<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"',$n;
+print ' "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">',$n;
+print '<book><chapter><title>Documentation</title>',$n;
+for $F (@order)
+{
+ print "</chapter>" if $file{$F}{text} =~ /<reference /;
+ print $file{$F}{text},$n,$n;
+}
+print '</book>',$n;
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/make-doc.pl b/Build/source/libs/zziplib/zziplib-src/docs/make-doc.pl
new file mode 100644
index 00000000000..89da2f6a95c
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/make-doc.pl
@@ -0,0 +1,580 @@
+
+use strict "vars";
+
+my $x;
+my $F;
+my @regs;
+my %file;
+my %func;
+
+my %o = ( verbose => 0 );
+
+$o{version} =
+ `grep -i "^version *:" *.spec | sed -e "s/[Vv]ersion *: *//"`;
+$o{package} =
+ `grep -i "^name *:" *.spec | sed -e "s/[Nn]ame *: *//"`;
+$o{version} =~ s{\s*}{}gs;
+$o{package} =~ s{\s*}{}gs;
+
+$o{version} = `date +%Y.%m.%d` if not length $o{version};
+$o{package} = "_project" if not length $o{package};
+
+$o{suffix} = "-doc1";
+$o{mainheader} = "$o{package}.h";
+
+my %fn;
+my $id = 1000;
+
+for $F (@ARGV)
+{
+ if ($F =~ /^(\w+)=(.*)/)
+ {
+ $o{$1} = $2;
+ }else{
+ open F, "<$F" or next;
+ my $T = join ("",<F>); close F;
+
+ $T =~ s/\&/\&amp\;/sg;
+ $T =~ s/¬/\&#AC\;/sg;
+ $T =~ s/\*\//¬/sg;
+
+ # cut per-function comment block
+ while ( $T =~
+ s{ [/][*][*](?=\s) ([^¬]+) ¬ ([^\{\}\;\#]+) [\{\;] }
+ { per_function_comment_and_declaration($F," ".$1,$2) }gsex
+ ) {}
+
+ # cut per-file comment block
+ if ( $T =~ m{ ^ [/][*]+(?=\s) ([^¬]+) ¬
+ (\s*\#include\s*<[^<>]*>(?:\s*/[/*][^\n]*)?) }sx)
+ {
+ $file{$F}{comment} = $1;
+ $file{$F}{include} = $2;
+ $file{$F}{comment} =~ s/¬/\*\//sg;
+ $file{$F}{include} =~ s/¬/\*\//sg;
+ $file{$F}{include} =~ s{[/][*]}{//}s;
+ $file{$F}{include} =~ s{[*][/]}{\n}s;
+ $file{$F}{include} =~ s{<}{\&lt\;}sg;
+ $file{$F}{include} =~ s{>}{\&gt\;}sg;
+ }
+ elsif ( $T =~ m{ ^ [/][*]+(?=\s) ([^¬]+) ¬ }sx)
+ {
+ $file{$F}{comment} = $1;
+ $file{$F}{comment} =~ s/¬/\*\//sg;
+ }
+
+ # throw away the rest - further processing on memorized strings only
+ }
+}
+
+$o{outputfilestem}= "$o{package}$o{suffix}" if not length $o{outputfilestem};
+$o{docbookfile}= "$o{outputfilestem}.docbook" if not length $o{docbookfile};
+$o{libhtmlfile}= "$o{outputfilestem}.html" if not length $o{libhtmlfile};
+$o{dumpdocfile}= "$o{outputfilestem}.dxml" if not length $o{dumpdocfile};
+
+sub per_function_comment_and_declaration
+{
+ my ($filename, $comment, $prototype) = @_;
+
+ $prototype =~ s{¬}{*/}sg;
+ $comment =~ s{¬}{*/}sg;
+ $comment =~ s{<([\w\.\-]+\@[\w\.\-]+\w\w)>}{&lt;$1&gt;}sg;
+ $func{$id}{filename} = $filename;
+ $func{$id}{comment} = $comment;
+ $func{$id}{prototype} = $prototype;
+ $id ++;
+ return $prototype;
+}
+# -----------------------------------------------------------------------
+sub pre { # used for non-star lines in comment blocks
+ my $T = $_[0]; $T =~ s/\&/\&amp\;/g;
+ $T =~ s/\</\&lt\;/g; $T =~ s/\>/\&gt\;/g; $T =~ s/\"/\&quot\;/g;
+ $T =~ s/^/\ /gm; # $T =~ s/^/\| /gm;
+ return " <pre> $T </pre> ";
+}
+
+# per-file comment block handling
+my $name;
+for $name (keys %file)
+{
+ $file{$name}{comment} =~ s{<([\w\.\-]+\@[\w\.\-]+\w\w)>}{&lt;$1&gt;}sg;
+ $file{$name}{comment} =~ s{ ^\s?\s?\s? ([^\*\s]+ .*) $}{&pre($1)}mgex;
+ $file{$name}{comment} =~ s{ ^\s*[*]\s* $}{ <p> }gmx;
+ $file{$name}{comment} =~ s{ ^\s?\s?\s?\* (.*) $}{ $1 }gmx;
+ $file{$name}{comment} =~ s{ </pre>(\s*)<pre> }{$1}gsx;
+ $file{$name}{comment} =~ s{ <([^<>\;]+\@[^<>\;]+)> }{<email>$1</email>}gsx;
+ $file{$name}{comment} =~ s{ \&lt\;([^<>\&\;]+\@[^<>\&\;]+)\&gt\; }
+ {<email>$1</email>}gsx;
+ $file{$name}{comment} .= "<p>";
+
+ $file{$name}{comment} =~ s{ \b[Aa]uthor\s*:(.*<\/email>) }
+ {
+ $file{$name}{author} = "$1";
+ "<author>"."$1"."</author>"
+ }sex;
+
+ $file{$name}{comment} =~ s{ \b[Cc]opyright[\s:]([^<>]*)<p> }
+ {
+ $file{$name}{copyright} = "$1";
+ "<copyright>"."$1"."</copyright>"
+ }sex;
+# if ($name =~ /file/) {
+# print STDERR $file{$name}{comment},"\n";
+# }
+ if ($file{$name}{include} =~ m{//\s*(\w+)[.][.][.]\s*})
+ {
+ if (length $o{$1}) {
+ $file{$name}{include} = "#include "
+ .$o{$1}."\n";
+ $file{$name}{include} =~ s{<}{\&lt\;}sg;
+ $file{$name}{include} =~ s{>}{\&gt\;}sg;
+ }
+ }
+}
+
+# -----------------------------------------------------------------------
+
+# pass 1 of per-func strings:
+# (a) cut prototype into prespec/namespec/callspec
+# (b) sanitize comment-block into proper docbook format
+# do this while copying strings from $func{$name} to $fn{name} strstrhash
+my @namelist;
+for $x (sort keys %func)
+{
+ my $name = $func{$x}{prototype};
+ $name =~ s/^.*[^.]\b(\w[\w.]*\w)\b\s*\(.*$/$1/s;
+ push @namelist, $name; # may be you want to omit some funcs from output?
+
+ $func{$x}{prototype} =~ m{ ^(.*[^.]) \b(\w[\w.]*\w)\b (\s*\(.*) $ }sx;
+ $fn{$name}{prespec} = $1;
+ $fn{$name}{namespec} = $2;
+ $fn{$name}{callspec} = $3;
+
+ $fn{$name}{comment} = $func{$x}{comment};
+ $fn{$name}{comment} =~ s/(^|\s)\=\>\"([^\"]*)\"/$1<link>$2<\/link>/gmx;
+ $fn{$name}{comment} =~ s/(^|\s)\=\>\'([^\"]*)\'/$1<link>$2<\/link>/gmx;
+ $fn{$name}{comment} =~ s/(^|\s)\=\>\s(\w[\w.]*\w)\b/$1<link>$2<\/link>/gmx;
+ $fn{$name}{comment} =~
+ s/(^|\s)\=\>\s([^\s\,\.\!\?\:\;\<\>\&\'\=\-]+)/$1<link>$2<\/link>/gmx;
+
+ # cut comment in first-line (describe) and only keep the rest in comment
+ $fn{$name}{describe} = $fn{$name}{comment};
+ $fn{$name}{describe} =~ s{^([^\n]*\n).*}{$1}gs;
+ $fn{$name}{comment} =~ s{^[^\n]*\n}{}gs;
+ if ($fn{$name}{describe} =~ /^\s*$/s)
+ {
+ $fn{$name}{describe} = "(".$func{$x}{filename}.")";
+ $fn{$name}{describe} =~ s,[.][.][/],,g;
+ }
+
+ $fn{$name}{comment} =~ s/ ^\s?\s?\s? ([^\*\s]+ .*) $/&pre($1)/mgex;
+ $fn{$name}{comment} =~ s/ ^\s?\s?\s?\* (.*) $/ <br \/> $1 /gmx;
+ $fn{$name}{comment} =~ s/ ^\s*<br\s*\/>\s* $/ <p> /gmx;
+ $fn{$name}{comment} =~ s{<<}{&lt;}sg;
+ $fn{$name}{comment} =~ s{>>}{&gt;}sg;
+ $fn{$name}{comment} =~ s/ (<p>\s*)<br\s*\/?>/$1/gsx;
+ $fn{$name}{comment} =~ s/ (<p>\s*)<br\s*\/?>/$1/gsx;
+ $fn{$name}{comment} =~ s/ (<br\s*\/?>\s*)<br\s*\/?>/$1/gsx;
+ $fn{$name}{comment} =~ s/<c>/<code>/gs;
+ $fn{$name}{comment} =~ s/<\/c>/<\/code>/gs;
+ $fn{$name}{comment} =~ s/<\/pre>(\s*)<pre>/$1/gs;
+
+ $fn{$name}{filename} = $func{$x}{filename};
+ $fn{$name}{callspec} =~ s{^ \s*}{}gsx;
+ $fn{$name}{prespec} =~ s{^ \s*}{}gsx;
+ $fn{$id} = $x;
+}
+
+# add extra docbook markups to callspec in $fn-hash
+for $name (@namelist) # <paramdef>
+{
+ $fn{$name}{callspec} =~ s:^([^\(\)]*)\(:$1<parameters>\(<paramdef>:s;
+ $fn{$name}{callspec} =~ s:\)([^\(\)]*)$:</paramdef>\)</parameters>$1:s;
+ $fn{$name}{callspec} =~ s:,:</paramdef>,<paramdef>:gs;
+ $fn{$name}{callspec} =~ s:<paramdef>(\s+):$1<paramdef>:gs;
+ $fn{$name}{callspec} =~ s:(\s+)</paramdef>:</paramdef>$1:gs;
+}
+
+# html-formatting of callspec strings
+for $name (@namelist)
+{
+ $fn{$name}{declcode} =
+ "<td valign=\"top\"><code>".$fn{$name}{prespec}."<\/code><\/td>"
+ ."<td valign=\"top\">&nbsp;&nbsp;</td>"
+ ."<td valign=\"top\"><a href=\"#$name\">"
+ ."\n <code>".$fn{$name}{namespec}."<\/code>\n"
+ ."<\/a><\/td>"
+ ."<td valign=\"top\">&nbsp;&nbsp;</td>"
+ ."<td valign=\"top\">".$fn{$name}{callspec}."<\/td>";
+
+ $fn{$name}{implcode} =
+ "<code>".$fn{$name}{prespec}."<\/code>"
+ ."\n <br \/><b><code>".$fn{$name}{namespec}."<\/code><\/b>"
+ ."\n &nbsp; <code>".$fn{$name}{callspec}."<\/code>";
+
+ $fn{$name}{declcode} =~ s{\s+<paramdef>}{\n<nobr>}gs;
+ $fn{$name}{implcode} =~ s{\s+<paramdef>}{\n<nobr>}gs;
+ $fn{$name}{declcode} =~ s{<paramdef>}{<nobr>}gs;
+ $fn{$name}{implcode} =~ s{<paramdef>}{<nobr>}gs;
+ $fn{$name}{declcode} =~ s{</paramdef>}{</nobr>}gs;
+ $fn{$name}{implcode} =~ s{</paramdef>}{</nobr>}gs;
+ $fn{$name}{declcode} =~ s{<parameters>}{\n <code>}gs;
+ $fn{$name}{implcode} =~ s{<parameters>}{\n <code>}gs;
+ $fn{$name}{declcode} =~ s{</parameters>}{</code>\n}gs;
+ $fn{$name}{implcode} =~ s{</parameters>}{</code>\n}gs;
+}
+
+# whether each function should get its own page or combined with others
+my $combinedstyle = 1;
+
+for $name (@namelist)
+{
+ if ($fn{$name}{describe} =~ /^ \s* <link>(\w[\w.]*\w)<\/link> /sx)
+ {
+ if ($combinedstyle and exists $fn{$1})
+ {
+ # $into tells later steps which func-name is the leader of a man
+ # page and that this func should add its descriptions over there.
+ $fn{$name}{into} = $1;
+ }
+ }
+
+ if ($fn{$name}{describe} =~ s/(.*)also:(.*)/$1/)
+ {
+ $fn{$name}{_seealso} = $2;
+ }
+
+ # and prepare items for being filled in $combinedstyle (html-mode)
+ # which includes adding descriptions of the leader functions firsthand
+ $fn{$name}{_anchors} = "<a name=\"$name\" />";
+ $fn{$name}{_impcode} = "<code>".$fn{$name}{implcode}."</code>";
+ $fn{$name}{_comment} = "<p> &nbsp;".$fn{$name}{describe}."\n";
+ $fn{$name}{_comment} .= "<p>".$fn{$name}{comment};
+}
+
+for $name (@namelist) # and add descriptions of non-leader entries (html-mode)
+{
+ next if not exists $fn{$name}{into}; # skip leader pages
+ my $into = $fn{$name}{into};
+ $fn{$into}{_anchors} .= "<a name=\"$name\" />";
+ $fn{$into}{_impcode} .= "<br />\n";
+ $fn{$into}{_impcode} .= "<code>".$fn{$name}{implcode}."</code>";
+ my $text = $fn{$name}{comment};
+ $text =~ s/ (T|t)his \s (function|procedure) /$1."he ".$name." ".$2/gsex;
+ $fn{$name}{_comment} .= "<p>".$text;
+}
+
+my $htmlTOC = "";
+my $htmlTXT = "";
+
+# generate the index-block at the start of the onepage-html file
+for $name (@namelist)
+{
+ $fn{$name}{_comment} =~ s/ (<p>\s*)<br\s*\/>/$1/gsx;
+
+ $htmlTOC .= "<tr valign=\"top\">\n".$fn{$name}{declcode}."</tr>";
+ next if $combinedstyle and exists $fn{$name}{into};
+
+ $htmlTXT .= "\n<dt>".$fn{$name}{_anchors}.$fn{$name}{_impcode}."<dt>";
+ $htmlTXT .= "\n<dd>".$fn{$name}{_comment};
+ $htmlTXT .= "\n<p align=\"right\"><small>("
+ .$fn{$name}{filename}.")</small></p></dd>";
+}
+
+# link ref-names in this page with its endpoints on the same html page
+$htmlTXT =~ s/ <link>(\w+)([^<>]*)<\/link> / &a_name($1,$2) /gsex;
+sub a_name
+{
+ my ($n,$m) = @_;
+ if (exists $fn{$n}) { return "<a href=\"#$n\"><code>$n$m</code></a>"; }
+ else { return "<code>$n$m</code>"; }
+}
+$htmlTXT =~ s/ \-\> /<small>-\&gt\;<\/small>/gsx; # just sanitize
+
+# and finally print the html-formatted output
+open F, ">$o{libhtmlfile}" or die "could not open '$o{libhtmlfile}': $!";
+print F "<html><head><title> $o{package} autodoc documentation </title>";
+print F "</head>\n<body>\n";
+print F "\n<h1>",$o{package}," <small><small><i>-", $o{version};
+print F "</i></small></small></h1>";
+print F "\n<table border=0 cellspacing=2 cellpadding=0>";
+print F $htmlTOC;
+print F "\n</table>";
+print F "\n<h3>Documentation</h3>\n";
+print F "\n<dl>";
+print F $htmlTXT;
+print F "\n</dl>";
+print F "\n</body></html>\n";
+close F;
+
+# =========================================================================== #
+# let's go for the pure docbook, a reference type master file for all man pages
+my @headerlist; # leader function pages - a file will be created for each of th
+my @mergedlist; # non-leader function that end up in one of those in headerlist
+
+for $name (@namelist)
+{
+ push @headerlist, $name if not exists $fn{$name}{into};
+ push @mergedlist, $name if exists $fn{$name}{into};
+
+ # and initialize the fields need for a man page entry - the fields are
+ # named after the docbook-markup that encloses (!!) the text we store
+ # in the strstrhash - therefore, {}{_refhint} = "hello" will be printed
+ # as <refhint>hello</refhint>. Names with scores at the end are only used
+ # as temporaries but they are memorized - perhaps they are useful later.
+
+ $fn{$name}{_refhint} =
+ "\n<!--========= ".$name." (3) ===========-->\n";
+ $fn{$name}{_refstart} = "";
+ $fn{$name}{_date_} = $o{version};
+ $fn{$name}{_date_} =~ s{\s*}{}gs;
+ $fn{$name}{_refentryinfo}
+ = "\n <date>".$fn{$name}{_date_}."</date>";
+ $fn{$name}{_productname_} = $o{package};
+ $fn{$name}{_productname_} =~ s{\s*}{}gs;
+ $fn{$name}{_refentryinfo}
+ .= "\n <productname>".$fn{$name}{_productname_}."</productname>";
+# if (exists $file{ $fn{$name}{filename} }{author})
+# {
+# $H = $file{ $fn{$name}{filename} }{author};
+# $H =~ s{ \s* ([^<>]*) (<email>[^<>]*</email>) }{
+# $fn{$name}{_refentryinfo} .= "\n <author>".$1.$2."</author>";
+# "" }gmex;
+# }
+ $fn{$name}{_refmeta} = "";
+ $fn{$name}{_refnamediv} = "";
+ $fn{$name}{_mainheader} = $o{mainheader};
+ $fn{$name}{_includes} = $file{ $fn{$name}{filename} }{include};
+ $fn{$name}{_manvolnum} = "3";
+ $fn{$name}{_funcsynopsisinfo} = "";
+ $fn{$name}{_funcsynopsis} = "";
+ $fn{$name}{_description} = "";
+ $fn{$name}{_refends} = "";
+}
+
+push @headerlist, @mergedlist; # aaahmm...
+
+# let's walk all (!!) entries...
+for $name (@headerlist)
+{
+ # $into is the target-manpage to add descriptions to. Initially it does
+ # reference the name of the function itself - but it overridden in the
+ # next line when we see an {into} mark. The self/into state is registered
+ # in two vars: $into is an index into %fn-strstrhash to be used instead of
+ # the $name-runvar and $me just a boolean value to conditionally add texts
+ my $into = $name; my $me = 1;
+
+ if (exists $fn{$name}{into})
+ {
+ $into = $fn{$name}{into}; $me = 0;
+ $fn{$name}{_refhint} =
+ "\n <!-- see ".$fn{$name}{mergeinto}." -->\n";
+ }
+
+ $fn{$into}{_refstart} .= '<refentry id="'.$name.'">' if $me;
+ $fn{$into}{_refends} .= "\n</refentry>\n" if $me;
+
+ $fn{$name}{_title_} = $name;
+ $fn{$name}{_title_} =~ s{\s*}{}gs;
+ $fn{$name}{_refentryinfo}
+ .= "\n <title>".$fn{$name}{_title_}."</title>" if $me;
+ $fn{$into}{_refmeta}
+ .= "\n <manvolnum>".$fn{$name}{_manvolnum}."</manvolnum>" if $me;
+ $fn{$into}{_refmeta}
+ .= "\n <refentrytitle>".$name."</refentrytitle>" if $me;
+
+ $fn{$name}{_funcsynopsisinfo}
+ = "\n".' #include &lt;'.$fn{$into}{_mainheader}.'&gt;' if $me;
+ $fn{$name}{_funcsynopsisinfo}
+ = "\n".$fn{$into}{_includes} if $me and length $fn{$into}{_includes};
+ $fn{$name}{_funcsynopsisinfo}
+ .= " // ".$o{synopsis} if $me and length $o{synopsis};
+
+ $fn{$into}{_refnamediv} .= "\n ".
+ "<refpurpose>".$fn{$name}{describe}." </refpurpose>" if $me;
+ $fn{$into}{_refnamediv} .= "\n".' <refname>'.$name.'</refname>';
+
+ # add to {}{_funcsynopsis}...
+ $fn{$into}{_funcsynopsis} .= "\n <funcprototype>\n <funcdef>";
+ $fn{$into}{_funcsynopsis} .= $fn{$name}{prespec}
+ ." <function>".$name."</function></funcdef>";
+ $fn{$name}{_callspec_} = $fn{$name}{callspec};
+ $fn{$name}{_callspec_} =~ s{<parameters>\s*\(}{ }gs;
+ $fn{$name}{_callspec_} =~ s{\)\s*</parameters>}{ }gs;
+ $fn{$name}{_callspec_} =~ s{</paramdef>\s*,\s*}{</paramdef>\n }gs;
+ $fn{$into}{_funcsynopsis}
+ .= "\n".$fn{$name}{_callspec_}." </funcprototype>";
+
+ # add to {}{_description}...
+ $fn{$name}{_comment_} = "<para>\n".$fn{$name}{comment}."\n</para>";
+ $fn{$name}{_comment_} =~ s{ (T|t)his \s (function|procedure) }
+ { $1."he <function>".$name."</function> ".$2 }gsex;
+ $fn{$name}{_comment_} =~ s{<p>}{"\n</para><para>\n"}gsex;
+ $fn{$name}{_comment_} =~ s{<br\s*/?>}{}gs;
+ $fn{$name}{_comment_} =~ s{(</?)em>}{$1emphasis>}gs;
+ $fn{$name}{_comment_} =~ s{<code>}{<userinput>}gs;
+ $fn{$name}{_comment_} =~ s{</code>}{</userinput>}gs;
+ $fn{$name}{_comment_} =~ s{<link>}{<function>}gs;
+ $fn{$name}{_comment_} =~ s{</link>}{</function>}gs;
+ $fn{$name}{_comment_} =~ s{<pre>}{<screen>}gs; # only xmlto .8 and
+ $fn{$name}{_comment_} =~ s{</pre>}{</screen>}gs; # higher !!
+# $fn{$name}{_comment_} =~ s{<ul>}{</para><itemizedlist>}gs;
+# $fn{$name}{_comment_} =~ s{</ul>}{</itemizedlist><para>}gs;
+# $fn{$name}{_comment_} =~ s{<li>}{<listitem><para>}gs;
+# $fn{$name}{_comment_} =~ s{</li>}{</para></listitem>\n}gs;
+ $fn{$name}{_comment_} =~ s{<ul>}{</para><programlisting>\n}gs;
+ $fn{$name}{_comment_} =~ s{</ul>}{</programlisting><para>}gs;
+ $fn{$name}{_comment_} =~ s{<li>}{}gs;
+ $fn{$name}{_comment_} =~ s{</li>}{}gs;
+ $fn{$into}{_description} .= $fn{$name}{_comment_};
+
+ if (length $fn{$name}{_seealso} and not $me)
+ {
+ $fn{$into}{_seealso} .= ", " if length $fn{$into}{_seealso};
+ $fn{$into}{_seealso} .= $fn{$name}{_seealso};
+ }
+
+ if (exists $file{ $fn{$name}{filename} }{author})
+ {
+ my $authors = $file{ $fn{$name}{filename} }{author};
+ $fn{$into}{_authors} = "<itemizedlist>";
+ $authors =~ s{ \s* ([^<>]*) (<email>[^<>]*</email>) }{
+ $fn{$into}{_authors}
+ .= "\n <listitem><para>".$1." ".$2."</para></listitem>";
+ "" }gmex;
+ $fn{$into}{_authors} .= "</itemizedlist>";
+ }
+
+ if (exists $file{ $fn{$name}{filename} }{copyright})
+ {
+ $fn{$into}{_copyright}
+ = "<screen>\n".$file{ $fn{$name}{filename} }{copyright}."</screen>\n";
+ }
+}
+
+# printing the docbook file is a two-phase process - we spit out the
+# leader pages first - later we add more pages with _refstart pointing
+# to the lader page, so that xmlto will add the functions there. Only the
+# leader page contains some extra info needed for troff page processing.
+
+my %header;
+
+open F, ">$o{docbookfile}" or die "could not open $o{docbookfile}: $!";
+print F '<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"';
+print F "\n",' "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">';
+print F "\n\n",'<reference><title>Manual Pages</title>',"\n";
+for $name (@namelist)
+{
+ print F $fn{$name}{_refhint};
+ next if exists $fn{$name}{into};
+ print F $fn{$name}{_refstart};
+ print F "\n<refentryinfo>", $fn{$name}{_refentryinfo}
+ , "\n</refentryinfo>\n" if length $fn{$name}{_refentryinfo};
+ print F "\n<refmeta>", $fn{$name}{_refmeta}
+ , "\n</refmeta>\n" if length $fn{$name}{_refmeta};
+ print F "\n<refnamediv>", $fn{$name}{_refnamediv}
+ , "\n</refnamediv>\n" if length $fn{$name}{_refnamediv};
+
+ print F "\n<refsynopsisdiv>" if length $fn{$name}{_funcsynopsis};
+ print F "\n<funcsynopsisinfo>", $fn{$name}{_funcsynopsisinfo}
+ , "\n</funcsynopsisinfo>" if length $fn{$name}{_funcsynopsisinfo};
+ print F "\n<funcsynopsis>", $fn{$name}{_funcsynopsis}
+ , "\n</funcsynopsis>" if length $fn{$name}{_funcsynopsis};
+ print F "\n</refsynopsisdiv>" if length $fn{$name}{_funcsynopsis};
+ print F "\n<refsect1><title>Description</title>", $fn{$name}{_description}
+ , "\n</refsect1>" if length $fn{$name}{_description};
+ print F "\n<refsect1><title>Author</title>", $fn{$name}{_authors}
+ , "\n</refsect1>" if length $fn{$name}{_authors};
+ print F "\n<refsect1><title>Copyright</title>", $fn{$name}{_copyright}
+ , "\n</refsect1>" if length $fn{$name}{_copyright};
+ print F "\n<refsect1><title>See Also</title>", $fn{$name}{_seealso}
+ , "\n</refsect1>" if length $fn{$name}{_seealso};
+
+ print F $fn{$name}{_refends};
+
+ # ------------------------------------------------------------------
+ # creating the per-header manpage - a combination of function man pages
+
+ my $H = $fn{$name}{_mainheader}; # a shorthand for the mainheader index
+ my $me = 0; $me = 1 if not exists $header{$H};
+ my $HH = $H; $HH =~ s/[^\w\.]/-/g;
+ $header{$H}{_refstart} = "\n<refentry id=\"".$HH."\">" if $me;
+ $header{$H}{_refends} = "\n</refentry>\n" if $me;
+ $header{$H}{_refentryinfo} = $fn{$name}{_refentryinfo} if $me;
+ $header{$H}{_refentryinfo}
+ =~ s/(<title>)([^<>]*)(<\/title>)/$1 the library $3/s if $me;
+ $header{$H}{_refmeta}
+ = "\n <manvolnum>".$fn{$name}{_manvolnum}."</manvolnum>\n"
+ . "\n <refentrytitle>".$fn{$name}{_mainheader}."</refentrytitle>" if $me;
+ $header{$H}{_refnamediv} = "\n <refpurpose> library </refpurpose>";
+ $header{$H}{_refnamediv} .= "\n <refname>".$HH."</refname>";
+
+ $header{$H}{_refsynopsisinfo}
+ = $fn{$name}{_refsynopsisinfo} if exists $fn{$name}{_refsynopsisinfo};
+ $header{$H}{_funcsynopsis}
+ .= "\n".$fn{$name}{_funcsynopsis} if exists $fn{$name}{_funcsynopsis};
+# $header{$H}{_funcsynopsisdiv} .= "\n<funcsynopsis>"
+# .$fn{$name}{_funcsynopsis}."</funcsynopsis>"
+# if exists $fn{$name}{_funcsynopsis};
+ $header{$H}{_copyright}
+ = $fn{$name}{_copyright} if exists $fn{$name}{_copyright} and $me;
+ $header{$H}{_authors}
+ = $fn{$name}{_authors} if exists $fn{$name}{_authors} and $me;
+ if ($me)
+ {
+ my $T = `cat $o{package}.spec`;
+ if ($T =~ /\%description\b([^\%]*)\%/s)
+ {
+ $header{$H}{_description} = $1;
+ }elsif (not length $header{$H}{_description})
+ {
+ $header{$H}{_description} = "$o{package} library";
+ }
+ }
+}
+
+my $H;
+for $H (keys %header) # second pass
+{
+ next if not length $header{$H}{_refstart};
+ print F "\n<!-- _______ ",$H," _______ -->";
+ print F $header{$H}{_refstart};
+ print F "\n<refentryinfo>", $header{$H}{_refentryinfo}
+ , "\n</refentryinfo>\n" if length $header{$H}{_refentryinfo};
+ print F "\n<refmeta>", $header{$H}{_refmeta}
+ , "\n</refmeta>\n" if length $header{$H}{_refmeta};
+ print F "\n<refnamediv>", $header{$H}{_refnamediv}
+ , "\n</refnamediv>\n" if length $header{$H}{_refnamediv};
+
+ print F "\n<refsynopsisdiv>" if length $header{$H}{_funcsynopsis};
+ print F "\n<funcsynopsisinfo>", $header{$H}{_funcsynopsisinfo}
+ , "\n</funcsynopsisinfo>" if length $header{$H}{_funcsynopsisinfo};
+ print F "\n<funcsynopsis>", $header{$H}{_funcsynopsis}
+ , "\n</funcsynopsis>" if length $header{$H}{_funcsynopsis};
+ print F "\n</refsynopsisdiv>" if length $header{$H}{_funcsynopsis};
+
+ print F "\n<refsect1><title>Description</title>", $header{$H}{_description}
+ , "\n</refsect1>" if length $header{$H}{_description};
+ print F "\n<refsect1><title>Author</title>", $header{$H}{_authors}
+ , "\n</refsect1>" if length $header{$H}{_authors};
+ print F "\n<refsect1><title>Copyright</title>", $header{$H}{_copyright}
+ , "\n</refsect1>" if length $header{$H}{_copyright};
+
+ print F $header{$H}{_refends};
+}
+print F "\n",'</reference>',"\n";
+close (F);
+
+# _____________________________________________________________________
+open F, ">$o{dumpdocfile}" or die "could not open $o{dumpdocfile}: $!";
+
+for $name (sort keys %fn)
+{
+ print F "<fn id=\"$name\"><!-- FOR \"$name\" -->\n";
+ for $H (sort keys %{$fn{$name}})
+ {
+ print F "<$H name=\"$name\">",$fn{$name}{$H},"</$H>\n";
+ }
+ print F "</fn><!-- END \"$name\" -->\n\n";
+}
+close F;
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/make-doc.py b/Build/source/libs/zziplib/zziplib-src/docs/make-doc.py
new file mode 100644
index 00000000000..0bf82321ebe
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/make-doc.py
@@ -0,0 +1,1026 @@
+#! /usr/bin/python3
+# -*- coding: UTF-8 -*-
+
+import sys
+import re
+import commands
+import warnings
+
+errors = 0
+def warn(msg, error=None):
+ global errors
+ errors += 1
+ if error is None:
+ warnings.warn("-- "+str(errors)+" --\n "+msg, RuntimeWarning, 2)
+ else:
+ warnings.warn("-- "+str(errors)+" --\n "+msg+
+ "\n error was "+str(error), RuntimeWarning, 2)
+#fu
+
+# beware, stupid python interprets backslashes in repl only partially!
+def s(string, pattern, repl, count=0):
+ return re.sub(pattern, repl, string, count)
+def m(string, pattern):
+ return re.match(pattern, string)
+def sorted_keys(dict):
+ keys = dict.keys()
+ keys.sort()
+ return keys
+
+# we make up a few formatter routines to help in the processing:
+def html2docbook(text):
+ """ the C comment may contain html markup - simulate with docbook tags """
+ return (
+ s(s(s(s(s(s(s(s(s(s(s(text,
+ r"<br\s*/?>",""),
+ r"(</?)em>",r"\1emphasis>"),
+ r"<code>","<userinput>"),
+ r"</code>","</userinput>"),
+ r"<link>","<function>"),
+ r"</link>","</function>"),
+ r"(?s)\s*</screen>","</screen>"),
+# r"<ul>","</para><itemizedlist>"),
+# r"</ul>","</itemizedlist><para>"),
+# r"<li>","<listitem><para>"),
+# r"</li>","</para></listitem>\n"),
+ r"<ul>","</para><programlisting>\n"),
+ r"</ul>","</programlisting><para>"),
+ r"<li>",""),
+ r"</li>",""))
+def paramdef2html(text):
+ return s(s(s(s(s(text,
+ r"\s+<paramdef>", r"\n<nobr>"),
+ r"<paramdef>",r"<nobr>"),
+ r"</paramdef>",r"</nobr>"),
+ r"<parameters>",r"\n <code>"),
+ r"</parameters>",r"</code>\n")
+def section2html(text):
+ mapping = { "<screen>" : "<pre>", "</screen>" : "</pre>",
+ "<para>" : "<p>", "</para>" : "</p>" ,
+ "<function>" : "<link>", "</function>" : "</link>" }
+ for m in mapping:
+ text = text.replace(m, mapping[m])
+ return text
+def html(text):
+ return section2html(paramdef2html(text))
+def cdata1(text):
+ return text.replace("&", "&amp;")
+def cdata31(text):
+ text = text.replace("<","&lt;")
+ return text.replace(">","&gt;")
+def cdata3(text):
+ return cdata31(cdata1(text))
+def cdata43(text):
+ return text.replace("\"", "&quot;")
+def cdata41(text):
+ return cdata43(cdata31(text))
+def cdata4(text):
+ return cdata43(cdata3(text))
+def markup_as_screen41 (text):
+ """ used for non-star lines in comment blocks """
+ return " <screen> " + s(cdata41(text), r"(?m)^", r" ") +" </screen> "
+
+def file_comment2section(text):
+ """ convert a C comment into a series of <para> and <screen> parts """
+ return ("<para>\n"+
+ s(s(s(s(s(s(s(text,
+ r"(?s){<([\w\.\-]+\@[\w\.\-]+\w\w)>",
+ r"&lt;\1&gt;"),
+ r"(?mx) ^\s?\s?\s? ([^\*\s]+ .*) $",
+ lambda x : markup_as_screen41 (x.group(1))),
+ r"(?mx) ^\s*[*]\s* $", r" \n</para><para>\n"),
+ r"(?mx) ^\s?\s?\s?\* (.*) $", r" \1 "),
+ r"(?sx) </screen>(\s*)<screen> ", r"\1"),
+ r"(?sx) <([^<>\;]+\@[^<>\;]+)> ", r"<email>\1</email>"),
+ r"(?sx) \&lt\;([^<>\&\;]+\@[^<>\&\;]+)\&gt\; ",
+ r"<email>\1</email>") + "\n</para>")
+def func_comment2section(text):
+ """ convert a C comment into a series of <para> and <screen> parts
+ and sanitize a few markups already present in the comment text
+ """
+ return ("<para>\n"+
+ s(s(s(s(s(s(s(s(s(s(s(text,
+ r"<c>",r"<code>"), r"</c>", r"</code>"),
+ r"(?mx) ^\s?\s?\s? ([^\*\s]+.*)",
+ lambda x: markup_as_screen41 (x.group(1))),
+ r"(?mx) ^\s?\s?\s?\* (.*) $", r" <br /> \1"),
+ r"(?mx) ^\s*<br\s*\/>\s* $", r"\n</para><para>\n"),
+ r"<<",r"&lt;"), r">>",r"&gt;"),
+ r"(?sx) (</?para>\s*)<br\s*\/?>",r"\1"),
+ r"(?sx) (</?para>\s*)<br\s*\/?>",r"\1"),
+ r"(?sx) (<br\s*\/?>\s*)<br\s*\/?>",r"\1"),
+ r"(?sx) <\/screen>(\s*)<screen>",r"\1") + "\n</para>")
+def markup_link_syntax(text):
+ """ markup the link-syntax ` => somewhere ` in the text block """
+ return (
+ s(s(s(s(text,
+ r"(?mx) (^|\s)\=\>\"([^\"]*)\"", r"\1<link>\2</link>"),
+ r"(?mx) (^|\s)\=\>\'([^\"]*)\'", r"\1<link>\2</link>"),
+ r"(?mx) (^|\s)\=\>\s(\w[\w.]*\w)\b", r"\1<link>\2</link>"),
+ r"(?mx) (^|\s)\=\>\s([^\s\,\.\!\?\:\;\<\>\&\'\=\-]+)",
+ r"\1<link>\2</link>"))
+def this_function_link(text, name):
+ return s(text, r"(?sx) (T|t)his \s (function|procedure) ", lambda x
+ : "<function>"+x.group(1)+"he "+name+" "+x.group(2)+"</function>")
+
+# -----------------------------------------------------------------------
+class Options:
+ var = {}
+ def __getattr__(self, name):
+ if not name in self.var: return None
+ return self.var[name]
+ def __setattr__(self, name, value):
+ self.var[name] = value
+#end
+
+o = Options()
+o.verbose = 0
+
+o.version = s( commands.getoutput(
+ """ grep -i "^version *:" *.spec 2>/dev/null |
+ sed -e "s/[Vv]ersion *: *//" """), r"\s*",r"")
+o.package = s(commands.getoutput(
+ """ grep -i "^name *:" *.spec 2>/dev/null |
+ sed -e "s/[Nn]ame *: *//" """), r"\s*",r"")
+
+if not len(o.version):
+ o.version = commands.getoutput(""" date +%Y.%m.%d """)
+if not len(o.package):
+ o.package = "_project"
+
+o.suffix = "-doc3"
+o.mainheader = o.package+".h"
+
+class File:
+ def __init__(self, filename):
+ self.name = filename
+ self.mainheader = o.mainheader
+ self.authors = ""
+ self.copyright = ""
+ def __getattr__(self, name):
+ """ defend against program to break on uninited members """
+ if name in self.__dict__: return self.__dict__[name]
+ warn("no such member: "+name); return None
+ def set_author(self, text):
+ if self.authors:
+ self.authors += "\n"
+ self.authors += text
+ return text
+ def set_copyright(self, text):
+ self.copyright = text
+ return text
+
+class InputFiles:
+ """ for each set of input files we can create an object
+ it does correspond with a single html-output page and
+ a single docbook <reference> master page to be output
+ """
+ def __init__(self):
+ # the id will tell us in which order
+ # we did meet each function definition
+ self.id = 1000
+ self.files = [] # file_list
+ self.funcs = [] # func_list: of hidden class FuncDeclaration
+ self.file = None # current file
+ def new_File(self, name):
+ self.file = File(name)
+ self.files.append(self.file)
+ return self.file
+ def next_id(self):
+ id = self.id ; self.id += 1
+ return id
+ def add_function_declaration(self, comment, prototype):
+ class FuncDeclaration: # note that both decl.comment and
+ pass # decl.prototype are in cdata1 format
+ func = FuncDeclaration()
+ func.file = self.file
+ func.comment = s(comment, # need to take out email-style markups
+ r"<([\w\.\-]+\@[\w\.\-]+\w\w)>", r"&lt;\1&gt;")
+ func.prototype = prototype
+ func.id = all.next_id()
+ self.funcs.append(func)
+ # print id
+ return prototype
+
+def scan_options (options, list):
+ def encode(text):
+ return s(s(text, r"¬", r"&#AC;"), r"\*/",r"¬")
+ def decode(text):
+ return s(text, r"¬", r"*/")
+
+ for name in options:
+ found = m(name, r"^(\w+)=(.*)")
+ if found:
+ o.var[found.group(1)] = found.group(2)
+ continue
+ #else
+ try:
+ input = open(name, "r")
+ except IOError as error:
+ warn(#...... (scan_options) ...............
+ "can not open input file: "+name, error)
+ continue
+ text = input.read() ; input.close()
+ text = encode (cdata1 (text))
+
+ file = list.new_File(name)
+
+ # cut per-function comment block
+ text = s(text, r"(?x) [/][*][*](?=\s) ([^¬]+) ¬ ([^\{\}\;\#]+) [\{\;]",
+ lambda x : list.add_function_declaration(
+ decode(x.group(1)), decode(x.group(2))))
+
+ # cut per-file comment block
+ found = m(text, r"(?sx) [/][*]+(?=\s) ([^¬]+) ¬ "
+ r"(?:\s*\#define\s*\S+)*"
+ r"(\s*\#include\s*<[^<>]*>(?:\s*//[^\n]*)?)")
+ if found:
+ file.comment = decode(found.group(1))
+ file.include = cdata31(found.group(2))
+ else:
+ file.comment = None
+ file.include = None
+ found = m(text, r"(?sx) ^ [/][*]+(?=\s) ([^¬]+) ¬ ")
+ if found:
+ file.comment = decode(found.group(1))
+ #fi
+ # throw away the rest - further processing on memorized strings only
+
+ return None
+
+all = InputFiles()
+scan_options (sys.argv[1:], all)
+
+if not o.docbookfile:
+ o.docbookfile = o.package+o.suffix+".docbook"
+if not o.libhtmlfile:
+ o.libhtmlfile = o.package+o.suffix+".html"
+if not o.dumpdocfile:
+ o.dumpdocfile = o.package+o.suffix+".dxml"
+
+# ...........................................................................
+# check out information in the file.comment section
+
+def all_files_comment2section(list):
+ for file in list:
+ if file.comment is None: continue
+ file.section = file_comment2section(file.comment)
+
+ file.section = s(
+ file.section, r"(?sx) \b[Aa]uthor\s*:(.*</email>) ", lambda x
+ : "<author>" + file.set_author(x.group(1)) + "</author>")
+ file.section = s(
+ file.section, r"(?sx) \b[Cc]opyright\s*:([^<>]*)</para> ",lambda x
+ : "<copyright>" + file.set_copyright(x.group(1)) + "</copyright>")
+ # if "file" in file.name: print >> sys.stderr, file.comment # 2.3
+ #od
+all_files_comment2section(all.files)
+
+# -----------------------------------------------------------------------
+
+class Function:
+ " <prespec>void* </><namespec>hello</><namespec> (int) const</callspec> "
+ def __init__(self):
+ self.prespec = ""
+ self.namespec = ""
+ self.callspec = ""
+ self.name = ""
+# def set(self, **defines):
+# name = defines.keys()[0]
+# self.__dict__[name] = defines[name]
+# return defines[name]
+# def cut(self, **defines):
+# name = defines.keys()[0]
+# self.__dict__[name] += defines[name]
+# return ""
+ def __getattr__(self, name):
+ """ defend against program exit on members being not inited """
+ if name in self.__dict__: return self.__dict__[name]
+ warn("no such member: "+name); return None
+ def dict(self):
+ return self.__dict__
+ def dict_sorted_keys(self):
+ keys = self.__dict__.keys()
+ keys.sort()
+ return keys
+ def parse(self, prototype):
+ found = m(prototype, r"(?sx) ^(.*[^.]) \b(\w[\w.]*\w)\b (\s*\(.*) $ ")
+ if found:
+ self.prespec = found.group(1).lstrip()
+ self.namespec = found.group(2)
+ self.callspec = found.group(3).lstrip()
+ self.name = self.namespec.strip()
+ return self.name
+ return None
+
+# pass 1 of per-func strings ...............................................
+# (a) cut prototype into prespec/namespec/callspec
+# (b) cut out first line of comment as headline information
+# (c) sanitize rest of comment block into proper docbook formatted .body
+#
+# do this while copying strings from all.funcs to function_list
+# and remember the original order in name_list
+
+def markup_callspec(text):
+ return (
+ s(s(s(s(s(text,
+ r"(?sx) ^([^\(\)]*)\(", r"\1<parameters>(<paramdef>",1),
+ r"(?sx) \)([^\(\)]*)$", r"</paramdef>)</parameters>\1",1),
+ r"(?sx) , ", r"</paramdef>,<paramdef>"),
+ r"(?sx) <paramdef>(\s+) ", r"\1<paramdef>"),
+ r"(?sx) (\s+)</paramdef>", r"</paramdef>\1"))
+
+def parse_all_functions(func_list): # list of FunctionDeclarations
+ """ parse all FunctionDeclarations and create a list of Functions """
+ list = []
+ for func in all.funcs:
+ function = Function()
+ if not function.parse (func.prototype): continue
+
+ list.append(function)
+
+ function.body = markup_link_syntax(func.comment)
+ if "\n" not in function.body: # single-line comment is the head
+ function.head = function.body
+ function.body = ""
+ else: # cut comment in first-line and only keep the rest as descr body
+ function.head = s(function.body, r"(?sx) ^([^\n]*\n).*",r"\1",1)
+ function.body = s(function.body, r"(?sx) ^[^\n]*\n", r"", 1)
+ #fi
+ if m(function.head, r"(?sx) ^\s*$ "): # empty head line, autofill here
+ function.head = s("("+func.file.name+")", r"[.][.][/]", r"")
+
+ function.body = func_comment2section(function.body)
+ function.src = func # keep a back reference
+
+ # add extra docbook markups to callspec in $fn-hash
+ function.callspec = markup_callspec (function.callspec)
+ #od
+ return list
+function_list = parse_all_functions(all.funcs)
+
+def examine_head_anchors(func_list):
+ """ .into tells later steps which func-name is the leader of a man
+ page and that this func should add its descriptions over there. """
+ for function in func_list:
+ function.into = None
+ function.seealso = None
+
+ found = m(function.head, r"(?sx) ^ \s* <link>(\w[\w.]*\w)<\/link>")
+ # if found and found.group(1) in func_list.names:
+ if found and found.group(1):
+ function.into = found.group(1)
+
+ def set_seealso(f, value):
+ f.seealso = value
+ return value
+ function.head = s(function.head, r"(.*)also:(.*)", lambda x
+ : set_seealso(function, x.group(2)) and x.group(1))
+ if function.seealso and None:
+ print("function[" + function.name + "].seealso=" + function.seealso)
+examine_head_anchors(function_list)
+
+# =============================================================== HTML =====
+
+def find_by_name(func_list, name):
+ for func in func_list:
+ if func.name == name:
+ return func
+ #od
+ return None
+#fu
+
+class HtmlFunction:
+ def __init__(self, func):
+ self.src = func.src
+ self.into = func.into
+ self.name = func.name
+ self.toc_line = paramdef2html(
+ " <td valign=\"top\"><code>"+func.prespec+"</code></td>\n"+
+ " <td valign=\"top\">&nbsp;&nbsp;</td>\n"+
+ " <td valign=\"top\"><a href=\"#"+func.name+"\">\n"+
+ " <code>"+func.namespec+"</code>"+
+ " </a></td>\n"+
+ " <td valign=\"top\">&nbsp;&nbsp;</td>\n"+
+ " <td valign=\"top\">"+func.callspec+"</td>\n")
+ self.synopsis = paramdef2html(
+ " <code>"+func.prespec+"</code>\n"+
+ " <br /><b><code>"+func.namespec+"</code></b>\n"+
+ " &nbsp; <code>"+func.callspec+"</code>\n")
+ self.anchor = "<a name=\""+func.name+"\" />"
+ self.section = "<para><em> &nbsp;"+func.head+"\n"+ \
+ "\n</em></para>"+section2html(func.body)
+#class
+
+class HtmlFunctionFamily(HtmlFunction):
+ def __init__(page, func):
+ HtmlFunction.__init__(page, func)
+ page.toc_line_list = [ page.toc_line ]
+ # page.html_txt = page.synopsis
+ page.synopsis_list = [ page.synopsis ]
+ page.anchor_list = [ page.anchor ]
+ page.section_list = [ this_function_link(page.section, func.name) ]
+
+def ensure_name(text, name):
+ adds = "<small><code>"+name+"</code></small> -"
+ match = r"(?sx) .*>[^<>]*\b" + name + r"\b[^<>]*<.*"
+ found = m(text, match)
+ if found: return text
+ found = m(text, r".*<p(ara)?>.*")
+ if found: return s(text, r"(<p(ara)?>)", r"\1"+adds, 1)
+ return adds+text
+
+def combined_html_pages(func_list):
+ """ and now add descriptions of non-leader entries (html-mode) """
+ combined = {}
+
+ for func in func_list: # assemble leader pages
+ if func.into is not None: continue
+ combined[func.name] = HtmlFunctionFamily(func)
+
+ for func in func_list:
+ if func.into is None: continue
+ if func.into not in combined :
+ warn(#......... (combine_html_pages) ..............
+ "function '"+func.name+"'s into => '"+func.into+
+ "\n: no such target function: "+func.into)
+ combined[func.name] = HtmlFunctionFamily(func)
+ continue
+ #fi
+ page = HtmlFunction(func)
+ into = combined[func.into]
+ into.toc_line_list.append( page.toc_line )
+ into.anchor_list.append( page.anchor )
+ into.synopsis_list.append( page.synopsis )
+ into.section_list.append(
+ s(ensure_name(this_function_link(section2html( func.body ),
+ func.name), func.name),
+ r"(?sx) (</?para>\s*) <br\s*\/>", r"\1"))
+ return combined.values()
+html_pages = combined_html_pages(function_list)
+
+def html_resolve_links_on_page(text, list):
+ """ link ref-names of a page with its endpoint on the same html page"""
+ def html_link (name , extra):
+ """ make <link>s to <href> of correct target or make it <code> """
+ if find_by_name(list, name) is None:
+ return "<code>"+name+extra+"</code>"
+ else:
+ return "<a href=\"#"+name+"\"><code>"+name+extra+"</code></a>"
+ #fu html_link
+ return s(s(text, r"(?sx) <link>(\w+)([^<>]*)<\/link> ",
+ lambda x : html_link(x.group(1),x.group(2))),
+ r"(?sx) \-\> ", r"<small>-&gt;</small>") # just sanitize..
+#fu html_resolve_links
+
+class HtmlPage:
+ def __init__(self):
+ self.toc = ""
+ self.txt = ""
+ self.package = o.package
+ self.version = o.version
+ def page_text(self):
+ """ render .toc and .txt parts into proper <html> page """
+ T = ""
+ T += "<html><head>"
+ T += "<title>"+self.package+"autodoc documentation </title>"
+ T += "</head>\n<body>\n"
+ T += "\n<h1>"+self.package+" <small><small><i>- "+self.version
+ T += "</i></small></small></h1>"
+ T += "\n<table border=0 cellspacing=2 cellpadding=0>"
+ T += self.toc
+ T += "\n</table>"
+ T += "\n<h3>Documentation</h3>\n\n<dl>"
+ T += html_resolve_links_on_page(self.txt, function_list)
+ T += "\n</dl>\n</body></html>\n"
+ return T
+ def add_page_map(self, list):
+ """ generate the index-block at the start of the onepage-html file """
+ keys = list.keys()
+ keys.sort()
+ for name in keys:
+ self.toc += "<tr valign=\"top\">\n"+ \
+ "\n</tr><tr valign=\"top\">\n".join(
+ list[name].toc_line_list)+"</tr>\n"
+ self.txt += "\n<dt>"+" ".join(list[name].anchor_list)
+ self.txt += "\n"+"\n<br />".join(list[name].synopsis_list)+"<dt>"
+ self.txt += "\n<dd>\n"+"\n".join(list[name].section_list)
+ self.txt += ("\n<p align=\"right\">"+
+ "<small>("+list[name].src.file.name+")</small>"+
+ "</p></dd>")
+ def add_page_list(self, functions):
+ """ generate the index-block at the start of the onepage-html file """
+ mapp = {}
+ for func in functions:
+ mapp[func.name] = func
+ #od
+ self.add_page_map(mapp)
+#end
+
+html = HtmlPage()
+# html.add_function_dict(Fn)
+# html.add_function_list(Fn.sort.values())
+html.add_page_list(html_pages)
+
+# and finally print the html-formatted output
+try:
+ F = open(o.libhtmlfile, "w")
+except IOError as error:
+ warn(# ............. open(o.libhtmlfile, "w") ..............
+ "can not open html output file: "+o.libhtmlfile, error)
+else:
+ print(html.page_text(), file=F)
+ F.close()
+#fi
+
+# ========================================================== DOCBOOK =====
+# let's go for the pure docbook, a reference type master for all man pages
+
+class RefPage:
+ def __init__(self, func):
+ """ initialize the fields needed for a man page entry - the fields are
+ named after the docbook-markup that encloses (!!) the text we store
+ the entries like X.refhint = "hello" will be printed therefore as
+ <refhint>hello</refhint>. Names with underscores are only used as
+ temporaries but they are memorized, perhaps for later usage. """
+ self.refhint = "\n<!--========= "+func.name+" (3) ===========-->\n"
+ self.refentry = None
+ self.refentry_date = o.version.strip() # //refentryinfo/date
+ self.refentry_productname = o.package.strip() # //refentryinfo/prod*
+ self.refentry_title = None # //refentryinfo/title
+ self.refentryinfo = None # override
+ self.manvolnum = "3" # //refmeta/manvolnum
+ self.refentrytitle = None # //refmeta/refentrytitle
+ self.refmeta = None # override
+ self.refpurpose = None # //refnamediv/refpurpose
+ self.refname = None # //refnamediv/refname
+ self.refname_list = []
+ self.refnamediv = None # override
+ self.mainheader = func.src.file.mainheader
+ self.includes = func.src.file.include
+ self.funcsynopsisinfo = "" # //funcsynopsisdiv/funcsynopsisinfo
+ self.funcsynopsis = None # //funcsynopsisdiv/funcsynopsis
+ self.funcsynopsis_list = []
+ self.description = None
+ self.description_list = []
+ # optional sections
+ self.authors_list = [] # //sect1[authors]/listitem
+ self.authors = None # override
+ self.copyright = None
+ self.copyright_list = []
+ self.seealso = None
+ self.seealso_list = []
+ if func.seealso:
+ self.seealso_list.append(func.seealso)
+ # func.func references
+ self.func = func
+ self.file_authors = None
+ if func.src.file.authors:
+ self.file_authors = func.src.file.authors
+ self.file_copyright = None
+ if func.src.file.copyright:
+ self.file_copyright = func.src.file.copyright
+ #fu
+ def refentryinfo_text(page):
+ """ the manvol formatter wants to render a footer line and header line
+ on each manpage and such info is set in <refentryinfo> """
+ if page.refentryinfo:
+ return page.refentryinfo
+ if page.refentry_date and \
+ page.refentry_productname and \
+ page.refentry_title: return (
+ "\n <date>"+page.refentry_date+"</date>"+
+ "\n <productname>"+page.refentry_productname+"</productname>"+
+ "\n <title>"+page.refentry_title+"</title>")
+ if page.refentry_date and \
+ page.refentry_productname: return (
+ "\n <date>"+page.refentry_date+"</date>"+
+ "\n <productname>"+page.refentry_productname+"</productname>")
+ return ""
+ def refmeta_text(page):
+ """ the manvol formatter needs to know the filename of the manpage to
+ be made up and these parts are set in <refmeta> actually """
+ if page.refmeta:
+ return page.refmeta
+ if page.manvolnum and page.refentrytitle:
+ return (
+ "\n <refentrytitle>"+page.refentrytitle+"</refentrytitle>"+
+ "\n <manvolnum>"+page.manvolnum+"</manvolnum>")
+ if page.manvolnum and page.func.name:
+ return (
+ "\n <refentrytitle>"+page.func.name+"</refentrytitle>"+
+ "\n <manvolnum>"+page.manvolnum+"</manvolnum>")
+ return ""
+ def refnamediv_text(page):
+ """ the manvol formatter prints a header line with a <refpurpose> line
+ and <refname>'d functions that are described later. For each of
+ the <refname>s listed here, a mangpage is generated, and for each
+ of the <refname>!=<refentrytitle> then a symlink is created """
+ if page.refnamediv:
+ return page.refnamediv
+ if page.refpurpose and page.refname:
+ return ("\n <refname>"+page.refname+'</refname>'+
+ "\n <refpurpose>"+page.refpurpose+" </refpurpose>")
+ if page.refpurpose and page.refname_list:
+ T = ""
+ for refname in page.refname_list:
+ T += "\n <refname>"+refname+'</refname>'
+ T += "\n <refpurpose>"+page.refpurpose+" </refpurpose>"
+ return T
+ return ""
+ def funcsynopsisdiv_text(page):
+ """ refsynopsisdiv shall be between the manvol mangemaent information
+ and the reference page description blocks """
+ T=""
+ if page.funcsynopsis:
+ T += "\n<funcsynopsis>"
+ if page.funcsynopsisinfo:
+ T += "\n<funcsynopsisinfo>"+ page.funcsynopsisinfo + \
+ "\n</funcsynopsisinfo>\n"
+ T += page.funcsynopsis + \
+ "\n</funcsynopsis>\n"
+ if page.funcsynopsis_list:
+ T += "\n<funcsynopsis>"
+ if page.funcsynopsisinfo:
+ T += "\n<funcsynopsisinfo>"+ page.funcsynopsisinfo + \
+ "\n</funcsynopsisinfo>\n"
+ for funcsynopsis in page.funcsynopsis_list:
+ T += funcsynopsis
+ T += "\n</funcsynopsis>\n"
+ #fi
+ return T
+ def description_text(page):
+ """ the description section on a manpage is the main part. Here
+ it is generated from the per-function comment area. """
+ if page.description:
+ return page.description
+ if page.description_list:
+ T = ""
+ for description in page.description_list:
+ if not description: continue
+ T += description
+ if T: return T
+ return ""
+ def authors_text(page):
+ """ part of the footer sections on a manpage and a description of
+ original authors. We prever an itimizedlist to let the manvol
+ show a nice vertical aligment of authors of this ref item """
+ if page.authors:
+ return page.authors
+ if page.authors_list:
+ T = "<itemizedlist>"
+ previous=""
+ for authors in page.authors_list:
+ if not authors: continue
+ if previous == authors: continue
+ T += "\n <listitem><para>"+authors+"</para></listitem>"
+ previous = authors
+ T += "</itemizedlist>"
+ return T
+ if page.authors:
+ return page.authors
+ return ""
+ def copyright_text(page):
+ """ the copyright section is almost last on a manpage and purely
+ optional. We list the part of the per-file copyright info """
+ if page.copyright:
+ return page.copyright
+ """ we only return the first valid instead of merging them """
+ if page.copyright_list:
+ T = ""
+ for copyright in page.copyright_list:
+ if not copyright: continue
+ return copyright # !!!
+ return ""
+ def seealso_text(page):
+ """ the last section on a manpage is called 'SEE ALSO' usually and
+ contains a comma-separated list of references. Some manpage
+ viewers can parse these and convert them into hyperlinks """
+ if page.seealso:
+ return page.seealso
+ if page.seealso_list:
+ T = ""
+ for seealso in page.seealso_list:
+ if not seealso: continue
+ if T: T += ", "
+ T += seealso
+ if T: return T
+ return ""
+ def refentry_text(page, id=None):
+ """ combine fields into a proper docbook refentry """
+ if id is None:
+ id = page.refentry
+ if id:
+ T = '<refentry id="'+id+'">'
+ else:
+ T = '<refentry>' # this is an error
+
+ if page.refentryinfo_text():
+ T += "\n<refentryinfo>"+ page.refentryinfo_text()+ \
+ "\n</refentryinfo>\n"
+ if page.refmeta_text():
+ T += "\n<refmeta>"+ page.refmeta_text() + \
+ "\n</refmeta>\n"
+ if page.refnamediv_text():
+ T += "\n<refnamediv>"+ page.refnamediv_text() + \
+ "\n</refnamediv>\n"
+ if page.funcsynopsisdiv_text():
+ T += "\n<refsynopsisdiv>\n"+ page.funcsynopsisdiv_text()+ \
+ "\n</refsynopsisdiv>\n"
+ if page.description_text():
+ T += "\n<refsect1><title>Description</title> " + \
+ page.description_text() + "\n</refsect1>"
+ if page.authors_text():
+ T += "\n<refsect1><title>Author</title> " + \
+ page.authors_text() + "\n</refsect1>"
+ if page.copyright_text():
+ T += "\n<refsect1><title>Copyright</title> " + \
+ page.copyright_text() + "\n</refsect1>\n"
+ if page.seealso_text():
+ T += "\n<refsect1><title>See Also</title><para> " + \
+ page.seealso_text() + "\n</para></refsect1>\n"
+
+ T += "\n</refentry>\n"
+ return T
+ #fu
+#end
+
+# -----------------------------------------------------------------------
+class FunctionRefPage(RefPage):
+ def reinit(page):
+ """ here we parse the input function for its values """
+ if page.func.into:
+ page.refhint = "\n <!-- see "+page.func.into+" -->\n"
+ #fi
+ page.refentry = page.func.name # //refentry@id
+ page.refentry_title = page.func.name.strip() # //refentryinfo/title
+ page.refentrytitle = page.func.name # //refmeta/refentrytitle
+ if page.includes:
+ page.funcsynopsisinfo += "\n"+page.includes
+ if not page.funcsynopsisinfo:
+ page.funcsynopsisinfo="\n"+' #include &lt;'+page.mainheader+'&gt;'
+ page.refpurpose = page.func.head
+ page.refname = page.func.name
+
+ def funcsynopsis_of(func):
+ return (
+ "\n <funcprototype>\n <funcdef>"+func.prespec+
+ " <function>"+func.name+"</function></funcdef>"+
+ "\n"+s(s(s(func.callspec,
+ r"<parameters>\s*\(",r" "),
+ r"\)\s*</parameters>",r" "),
+ r"</paramdef>\s*,\s*",r"</paramdef>\n ")+
+ " </funcprototype>")
+ page.funcsynopsis = funcsynopsis_of(page.func)
+
+ page.description = (
+ html2docbook(this_function_link(page.func.body, page.func.name)))
+
+ if page.file_authors:
+ def add_authors(page, ename, email):
+ page.authors_list.append( ename+' '+email )
+ return ename+email
+ s(page.file_authors,
+ r"(?sx) \s* ([^<>]*) (<email>[^<>]*</email>) ", lambda x
+ : add_authors(page, x.group(1), x.group(2)))
+ #fi
+
+ if page.file_copyright:
+ page.copyright = "<screen>\n"+page.file_copyright+"</screen>\n"
+ #fi
+ return page
+ def __init__(page,func):
+ RefPage.__init__(page, func)
+ FunctionRefPage.reinit(page)
+
+def refpage_list_from_function_list(funclist):
+ list = []
+ mapp = {}
+ for func in funclist:
+ mapp[func.name] = func
+ #od
+ for func in funclist:
+ page = FunctionRefPage(func)
+ if func.into and func.into not in mapp:
+ warn (# ............ (refpage_list_from_function_list) .......
+ "page '"+page.func.name+"' has no target => "+
+ "'"+page.func.into+"'"
+ "\n: going to reset .into of Function '"+page.func.name+"'")
+ func.into = None
+ #fi
+ list.append(FunctionRefPage(func))
+ return list
+#fu
+
+# ordered list of pages
+refpage_list = refpage_list_from_function_list(function_list)
+
+class FunctionFamilyRefPage(RefPage):
+ def __init__(self, page):
+ RefPage.__init__(self, page.func)
+ self.seealso_list = [] # reset
+ self.refhint_list = []
+ def refhint_list_text(page):
+ T = ""
+ for hint in page.refhint_list:
+ T += hint
+ return T
+ def refentry_text(page):
+ return page.refhint_list_text() + "\n" + \
+ RefPage.refentry_text(page)
+ pass
+
+def docbook_pages_recombine(pagelist):
+ """ take a list of RefPages and create a new list where sections are
+ recombined in a way that their description is listed on the same
+ page and the manvol formatter creates symlinks to the combined
+ function description page - use the attribute 'into' to guide the
+ processing here as each of these will be removed from the output
+ list. If no into-pages are there then the returned list should
+ render to the very same output text like the input list would do """
+
+ list = []
+ combined = {}
+ for orig in pagelist:
+ if orig.func.into: continue
+ page = FunctionFamilyRefPage(orig)
+ combined[orig.func.name] = page ; list.append(page)
+
+ page.refentry = orig.refentry # //refentry@id
+ page.refentry_title = orig.refentrytitle # //refentryinfo/title
+ page.refentrytitle = orig.refentrytitle # //refmeta/refentrytitle
+ page.includes = orig.includes
+ page.funcsynopsisinfo = orig.funcsynopsisinfo
+ page.refpurpose = orig.refpurpose
+ if orig.refhint:
+ page.refhint_list.append( orig.refhint )
+ if orig.refname:
+ page.refname_list.append( orig.refname )
+ elif orig.refname_list:
+ page.refname_list.extend( orig.refname_list )
+ if orig.funcsynopsis:
+ page.funcsynopsis_list.append( orig.funcsynopsis )
+ elif orig.refname_list:
+ page.funcsynopsis_list.extend( orig.funcsynopsis_list )
+ if orig.description:
+ page.description_list.append( orig.description )
+ elif orig.refname_list:
+ page.description_list.extend( orig.description_list )
+ if orig.seealso:
+ page.seealso_list.append( orig.seealso )
+ elif orig.seealso_list:
+ page.seealso_list.extend( orig.seealso_list )
+ if orig.authors:
+ page.authors_list.append( orig.authors )
+ elif orig.authors_list:
+ page.authors_list.extend( orig.authors_list )
+ if orig.copyright:
+ page.copyright_list.append( orig.copyright )
+ elif orig.refname_list:
+ page.copyright_list.extend( orig.copyright_list )
+ #od
+ for orig in pagelist:
+ if not orig.func.into: continue
+ if orig.func.into not in combined:
+ warn("page for '"+orig.func.name+
+ "' has no target => '"+orig.func.into+"'")
+ page = FunctionFamilyRefPage(orig)
+ else:
+ page = combined[orig.func.into]
+
+ if orig.refname:
+ page.refname_list.append( orig.refname )
+ elif orig.refname_list:
+ page.refname_list.extend( orig.refname_list )
+ if orig.funcsynopsis:
+ page.funcsynopsis_list.append( orig.funcsynopsis )
+ elif orig.refname_list:
+ page.funcsynopsis_list.extend( orig.funcsynopsis_list )
+ if orig.description:
+ page.description_list.append( orig.description )
+ elif orig.refname_list:
+ page.description_list.extend( orig.description_list )
+ if orig.seealso:
+ page.seealso_list.append( orig.seealso )
+ elif orig.seealso_list:
+ page.seealso_list.extend( orig.seealso_list )
+ if orig.authors:
+ page.authors_list.append( orig.authors )
+ elif orig.authors_list:
+ page.authors_list.extend( orig.authors_list )
+ if orig.copyright:
+ page.copyright_list.append( orig.copyright )
+ elif orig.refname_list:
+ page.copyright_list.extend( orig.copyright_list )
+ #od
+ return list
+#fu
+
+combined_pages = docbook_pages_recombine(pagelist = refpage_list)
+
+# -----------------------------------------------------------------------
+
+class HeaderRefPage(RefPage):
+ pass
+
+def docbook_refpages_perheader(page_list): # headerlist
+ " creating the per-header manpage - a combination of function man pages "
+ header = {}
+ for page in page_list:
+ assert not page.func.into
+ file = page.func.src.file.mainheader # short for the mainheader index
+ if file not in header:
+ header[file] = HeaderRefPage(page.func)
+ header[file].id = s(file, r"[^\w\.]","-")
+ header[file].refentry = header[file].id
+ header[file].refentryinfo = None
+ header[file].refentry_date = page.refentry_date
+ header[file].refentry_productname = (
+ "the library "+page.refentry_productname)
+ header[file].manvolnum = page.manvolnum
+ header[file].refentrytitle = file
+ header[file].funcsynopsis = ""
+ if 1: # or += or if not header[file].refnamediv:
+ header[file].refpurpose = " library "
+ header[file].refname = header[file].id
+
+ if not header[file].funcsynopsisinfo and page.funcsynopsisinfo:
+ header[file].funcsynopsisinfo = page.funcsynopsisinfo
+ if page.funcsynopsis:
+ header[file].funcsynopsis += "\n"+page.funcsynopsis
+ if not header[file].copyright and page.copyright:
+ header[file].copyright = page.copyright
+ if not header[file].authors and page.authors:
+ header[file].authors = page.authors
+ if not header[file].authors and page.authors_list:
+ header[file].authors_list = page.authors_list
+ if not header[file].description:
+ found = m(commands.getoutput("cat "+o.package+".spec"),
+ r"(?s)\%description\b([^\%]*)\%")
+ if found:
+ header[file].description = found.group(1)
+ elif not header[file].description:
+ header[file].description = "<para>" + (
+ page.refentry_productname + " library") + "</para>";
+ #fi
+ #fi
+ #od
+ return header#list
+#fu
+
+def leaders(pagelist):
+ list = []
+ for page in pagelist:
+ if page.func.into : continue
+ list.append(page)
+ return list
+header_refpages = docbook_refpages_perheader(leaders(refpage_list))
+
+# -----------------------------------------------------------------------
+# printing the docbook file is a two-phase process - we spit out the
+# leader pages first - later we add more pages with _refstart pointing
+# to the leader page, so that xmlto will add the functions there. Only the
+# leader page contains some extra info needed for troff page processing.
+
+doctype = '<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"'
+doctype += "\n "
+doctype += '"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">'+"\n"
+
+try:
+ F = open(o.docbookfile,"w")
+except IOError as error:
+ warn("can not open docbook output file: "+o.docbookfile, error)
+else:
+ print(doctype + '<reference><title>Manual Pages</title>', file=F)
+
+ for page in combined_pages:
+ print(page.refentry_text(), file=F)
+ #od
+
+ for page in header_refpages.values():
+ if not page.refentry: continue
+ print("\n<!-- _______ "+page.id+" _______ -->" + page.refentry_text(), file=F)
+ #od
+
+ print("\n</reference>\n", file=F)
+ F.close()
+#fi
+
+# _____________________________________________________________________
+try:
+ F = open( o.dumpdocfile, "w")
+except IOError as error:
+ warn ("can not open"+o.dumpdocfile,error)
+else:
+ for func in function_list:
+ name = func.name
+ print("<fn id=\""+name+"\">"+"<!-- FOR \""+name+"\" -->\n", file=F)
+ for H in sorted_keys(func.dict()):
+ print("<"+H+" name=\""+name+"\">" + str(func.dict()[H]) + "</"+H+">", file=F)
+ #od
+ print("</fn><!-- END \""+name+"\" -->\n\n", file=F)
+ #od
+ F.close();
+#fi
+
+if errors: sys.exit(errors)
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/makedocs.py b/Build/source/libs/zziplib/zziplib-src/docs/makedocs.py
new file mode 100644
index 00000000000..ad6bf724b36
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/makedocs.py
@@ -0,0 +1,325 @@
+#! /usr/bin/python3
+
+import sys
+from zzipdoc.match import *
+from zzipdoc.options import *
+from zzipdoc.textfile import *
+from zzipdoc.textfileheader import *
+from zzipdoc.functionheader import *
+from zzipdoc.functionprototype import *
+from zzipdoc.commentmarkup import *
+from zzipdoc.functionlisthtmlpage import *
+from zzipdoc.functionlistreference import *
+from zzipdoc.dbk2htm import *
+from zzipdoc.htmldocument import *
+from zzipdoc.docbookdocument import *
+
+def _src_to_xml(text):
+ return text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
+def _email_to_xml(text):
+ return text & Match("<([^<>]*@[^<>]*)>") >> "&lt;\\1&gt;"
+
+class PerFileEntry:
+ def __init__(self, header, comment):
+ self.textfileheader = header
+ self.filecomment = comment
+class PerFile:
+ def __init__(self):
+ self.textfileheaders = []
+ self.filecomments = []
+ self.entries = []
+ def add(self, textfileheader, filecomment):
+ self.textfileheaders += [ textfileheader ]
+ self.filecomments += [ filecomment ]
+ self.entries += [ PerFileEntry(textfileheader, filecomment) ]
+ def where_filename(self, filename):
+ for entry in self.entries:
+ if entry.textfileheader.get_filename() == filename:
+ return entry
+ return None
+ def print_list_mainheader(self):
+ for t_fileheader in self.headers:
+ print(t_fileheader.get_filename(), t_fileheader.src_mainheader())
+
+class PerFunctionEntry:
+ def __init__(self, header, comment, prototype):
+ self.header = header
+ self.comment = comment
+ self.prototype = prototype
+ def get_name(self):
+ return self.prototype.get_name()
+ def get_titleline(self):
+ return self.header.get_titleline()
+ def get_head(self):
+ return self.prototype
+ def get_body(self):
+ return self.comment
+class PerFunction:
+ def __init__(self):
+ self.headers = []
+ self.comments = []
+ self.prototypes = []
+ self.entries = []
+ def add(self, functionheader, functioncomment, functionprototype):
+ self.headers += [ functionheader ]
+ self.comments += [ functionprototype ]
+ self.prototypes += [ functionprototype ]
+ self.entries += [ PerFunctionEntry(functionheader, functioncomment,
+ functionprototype) ]
+ def print_list_titleline(self):
+ for funcheader in self.headers:
+ print(funcheader.get_filename(), "[=>]", funcheader.get_titleline())
+ def print_list_name(self):
+ for funcheader in self.prototypes:
+ print(funcheader.get_filename(), "[>>]", funcheader.get_name())
+
+class PerFunctionFamilyEntry:
+ def __init__(self, leader):
+ self.leader = leader
+ self.functions = []
+ def contains(self, func):
+ for item in self.functions:
+ if item == func: return True
+ return False
+ def add(self, func):
+ if not self.contains(func):
+ self.functions += [ func ]
+ def get_name(self):
+ if self.leader is None: return None
+ return self.leader.get_name()
+class PerFunctionFamily:
+ def __init__(self):
+ self.functions = []
+ self.families = []
+ self.retarget = {}
+ self.entries = []
+ def add_PerFunction(self, per_list):
+ for item in per_list.entries:
+ add_PerFunctionEntry(item)
+ def add_PerFunctionEntry(self, item):
+ self.functions += [ item ]
+ def get_function(self, name):
+ for item in self.functions:
+ if item.get_name() == name:
+ return item
+ return None
+ def get_entry(self, name):
+ for item in self.entries:
+ if item.get_name() == name:
+ return item
+ return None
+ def fill_families(self):
+ name_list = {}
+ for func in self.functions:
+ name = func.get_name()
+ name_list[name] = func
+ for func in self.functions:
+ name = func.get_name()
+ line = func.get_titleline()
+ is_retarget = Match("=>\s*(\w+)")
+ if line & is_retarget:
+ into = is_retarget[1]
+ self.retarget[name] = is_retarget[1]
+ lead_list = []
+ for name in self.retarget:
+ into = self.retarget[name]
+ if into not in name_list:
+ print("function '"+name+"' retarget into '"+into+
+ "' does not exist - keep alone")
+ if into in self.retarget:
+ other = self.retarget[into]
+ print("function '"+name+"' retarget into '"+into+
+ "' which is itself a retarget into '"+other+"'")
+ if into not in lead_list:
+ lead_list += [ into ]
+ for func in self.functions:
+ name = func.get_name()
+ if name not in lead_list and name not in self.retarget:
+ lead_list += [ name ]
+ for name in lead_list:
+ func = self.get_function(name)
+ if func is not None:
+ entry = PerFunctionFamilyEntry(func)
+ entry.add(func) # the first
+ self.entries += [ entry ]
+ else:
+ print("head function '"+name+" has no entry")
+ for func in self.functions:
+ name = func.get_name()
+ if name in self.retarget:
+ into = self.retarget[name]
+ entry = self.get_entry(into)
+ if entry is not None:
+ entry.add(func) # will not add duplicates
+ else:
+ print("into function '"+name+" has no entry")
+ def print_list_name(self):
+ for family in self.entries:
+ name = family.get_name()
+ print(name, ":", end = " ")
+ for item in family.functions:
+ print(item.get_name(), ",", end = " ")
+ print("")
+class HtmlManualPageAdapter:
+ def __init__(self, entry):
+ """ usually takes a PerFunctionEntry """
+ self.entry = entry
+ def get_name(self):
+ return self.entry.get_name()
+ def _head(self):
+ return self.entry.get_head()
+ def _body(self):
+ return self.entry.get_body()
+ def head_xml_text(self):
+ return self._head().xml_text()
+ def body_xml_text(self, name):
+ return self._body().xml_text(name)
+ def head_get_prespec(self):
+ return self._head().get_prespec()
+ def head_get_namespec(self):
+ return self._head().get_namespec()
+ def head_get_callspec(self):
+ return self._head().get_callspec()
+ def get_title(self):
+ return self._body().header.get_title()
+ def get_filename(self):
+ return self._body().header.get_filename()
+ def src_mainheader(self):
+ return self._body().header.parent.textfile.src_mainheader()
+ def get_mainheader(self):
+ return _src_to_xml(self.src_mainheader())
+class RefEntryManualPageAdapter:
+ def __init__(self, entry, per_file = None):
+ """ usually takes a PerFunctionEntry """
+ self.entry = entry
+ self.per_file = per_file
+ def get_name(self):
+ return self.entry.get_name()
+ def _head(self):
+ return self.entry.get_head()
+ def _body(self):
+ return self.entry.get_body()
+ def _textfile(self):
+ return self._body().header.parent.textfile
+ def head_xml_text(self):
+ return self._head().xml_text()
+ def body_xml_text(self, name):
+ return self._body().xml_text(name)
+ def get_title(self):
+ return self._body().header.get_title()
+ def get_filename(self):
+ return self._body().header.get_filename()
+ def src_mainheader(self):
+ return self._textfile().src_mainheader()
+ def get_mainheader(self):
+ return _src_to_xml(self.src_mainheader())
+ def get_includes(self):
+ return ""
+ def list_seealso(self):
+ return self._body().header.get_alsolist()
+ def get_authors(self):
+ comment = None
+ if self.per_file:
+ entry = self.per_file.where_filename(self.get_filename())
+ if entry:
+ comment = entry.filecomment.xml_text()
+ if comment:
+ check = Match(r"(?s)<para>\s*[Aa]uthors*\b:*"
+ r"((?:.(?!</para>))*.)</para>")
+ if comment & check: return _email_to_xml(check[1])
+ return None
+ def get_copyright(self):
+ comment = None
+ if self.per_file:
+ entry = self.per_file.where_filename(self.get_filename())
+ if entry:
+ comment = entry.filecomment.xml_text()
+ if comment:
+ check = Match(r"(?s)<para>\s*[Cc]opyright\b"
+ r"((?:.(?!</para>))*.)</para>")
+ if comment & check: return _email_to_xml(check[0])
+ return None
+
+def makedocs(filenames, o):
+ textfiles = []
+ for filename in filenames:
+ textfile = TextFile(filename)
+ textfile.parse()
+ textfiles += [ textfile ]
+ per_file = PerFile()
+ for textfile in textfiles:
+ textfileheader = TextFileHeader(textfile)
+ textfileheader.parse()
+ filecomment = CommentMarkup(textfileheader)
+ filecomment.parse()
+ per_file.add(textfileheader, filecomment)
+ funcheaders = []
+ for textfile in per_file.textfileheaders:
+ funcheader = FunctionHeaderList(textfile)
+ funcheader.parse()
+ funcheaders += [ funcheader ]
+ per_function = PerFunction()
+ for funcheader in funcheaders:
+ for child in funcheader.get_children():
+ funcprototype = FunctionPrototype(child)
+ funcprototype.parse()
+ funccomment = CommentMarkup(child)
+ funccomment.parse()
+ per_function.add(child, funccomment, funcprototype)
+ per_family = PerFunctionFamily()
+ for item in per_function.entries:
+ per_family.add_PerFunctionEntry(item)
+ per_family.fill_families()
+ # debug output....
+ # per_file.print_list_mainheader()
+ # per_function.print_list_titleline()
+ # per_function.print_list_name()
+ # per_family.print_list_name()
+ #
+ html = FunctionListHtmlPage(o)
+ for item in per_family.entries:
+ for func in item.functions:
+ func_adapter = HtmlManualPageAdapter(func)
+ if o.onlymainheader and not (Match("<"+o.onlymainheader+">")
+ & func_adapter.src_mainheader()):
+ continue
+ html.add(func_adapter)
+ html.cut()
+ html.cut()
+ class _Html_:
+ def __init__(self, html):
+ self.html = html
+ def html_text(self):
+ return section2html(paramdef2html(self.html.xml_text()))
+ def get_title(self):
+ return self.html.get_title()
+ HtmlDocument(o).add(_Html_(html)).save(o.output+o.suffix)
+ #
+ man3 = FunctionListReference(o)
+ for item in per_family.entries:
+ for func in item.functions:
+ func_adapter = RefEntryManualPageAdapter(func, per_file)
+ if o.onlymainheader and not (Match("<"+o.onlymainheader+">")
+ & func_adapter.src_mainheader()):
+ continue
+ man3.add(func_adapter)
+ man3.cut()
+ man3.cut()
+ DocbookDocument(o).add(man3).save(o.output+o.suffix)
+
+
+if __name__ == "__main__":
+ filenames = []
+ o = Options()
+ o.package = "ZZipLib"
+ o.program = sys.argv[0]
+ o.html = "html"
+ o.docbook = "docbook"
+ o.output = "zziplib"
+ o.suffix = ""
+ for item in sys.argv[1:]:
+ if o.scan(item): continue
+ filenames += [ item ]
+ makedocs(filenames, o)
+
+
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/memdisk.htm b/Build/source/libs/zziplib/zziplib-src/docs/memdisk.htm
new file mode 100644
index 00000000000..d5d25c9952d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/memdisk.htm
@@ -0,0 +1,116 @@
+<section> <date> 2005 </date>
+<H2> zzip/memdisk </H2> zip cache for mmapped views
+
+<BLOCKQUOTE>
+ These routines are fully independent from the traditional zzip
+ implementation. They build on top of
+ <a href="mmapped.html">zzip/mmapped</a> that uses a readonly
+ mmapped sharedmem block. These functions add additional hints
+ how to parse extension blocks and how to cache the zip central
+ directory entries which does furthermore allow to convert them
+ to any host-local format as required.
+</BLOCKQUOTE>
+
+<section>
+<H3> zzip disk handle </H3>
+
+<P>
+ Other than with the <a href="fseeko.html">fseeko</a> alternative
+ interface there is no need to have an actual disk handle to the
+ zip archive. Instead you can use a bytewise copy of a file or
+ even use a mmapped view of a file. This is generally the fastest
+ way to get to the data contained in a zipped file. All it requires
+ is enough of virtual memory space but a desktop computer with a
+ a modern operating system will easily take care of that.
+</P>
+
+<P>
+ The zzipmmapped library provides a number of calls to create a
+ disk handle representing a zip archive in virtual memory. Per
+ default we use the sys/mmap.h (or MappedView) functionality
+ of the operating system. See for more details in the
+ <a href="mmapped.html">zzip/mmapped</a> descriptions.
+</P>
+<P>
+ The zzip/memdisk extensions of zzip/mmapped are made to have a
+ very similar call API - therefore you will find again open and
+ close functions for filenames or filehandles. However the
+ direct mmap interface is not re-exported under the zzip_mem_disk
+ prefix (of the underlying zzip_disk prefix). The "_mem_" part
+ hints that the central directory of the underlying zzip_disk
+ is preparsed to a separate memory block.
+<PRE>
+ ZZIP_MEM_DISK* zzip_mem_disk_open(char* filename);
+ ZZIP_MEM_DISK* zzip_mem_disk_fdopen(int fd);
+ void zzip_mem_disk_close(ZZIP_MEM_DISK* disk);
+
+ int zzip_mem_disk_load (ZZIP_MEM_DISK* dir, ZZIP_DISK* disk);
+ void zzip_mem_disk_unload (ZZIP_MEM_DISK* dir);
+</PRE>
+ The last two functions export some parts of the underlying
+ interface. It is possible to bind an existing ZZIP_MEM_DISK
+ handle with an arbitrary ZZIP_DISK handle. Upon calling "load"
+ the central directory will be loaded from the underlying zip
+ disk content and parsed to an internal mem block. The corresponding
+ "unload" function will trash that central directory cache but it
+ leaves the handles intact.
+</P>
+
+</section><section>
+<H3> reading the central directory </H3>
+
+<P>
+ All other zzip_mem_disk functions are simply re-exporting the
+ underlying zzip_disk functions. Note that the first field in
+ the ZZIP_MEM_DISK is a "ZZIP_DISK* disk" - the header file
+ zzip/memdisk.h will simply export inline functions where there
+ is no special zzip_mem_disk function. Therefore, whenever a
+ function call on a ZZIP_DISK handle is appropriate one can
+ also use its cousin for a ZZIP_MEM_DISK handle without any
+ penalties but future compatibility for extra functionality in
+ zzip/memdisk layer of the zzip/mmapped library.
+</P>
+
+<P><small>Note: by default the re-exports are done with the help
+ of the C precompiler as precompiler macros. Using USE_INLINE
+ will force to make them real inlines. In the future that may
+ change in favor of a better autodetection for inline capabilities
+ of the compiler and/or using a standard cpp-define that enables
+ the C/C++ inline functions. The inline functions do have the
+ added value of having strongtyped arguments provoking more
+ readable warning messages in user application code.</small></P>
+
+<PRE>
+ inline ZZIP_DISK_ENTRY*
+zzip_mem_disk_findfirst(ZZIP_MEM_DISK* dir);
+ inline ZZIP_DISK_ENTRY*
+zzip_mem_disk_findnext(ZZIP_MEM_DISK* dir, ZZIP_DISK_ENTRY* entry);
+ inline char* _zzip_restrict
+zzip_mem_disk_entry_strdup_name(ZZIP_MEM_DISK* dir,
+ ZZIP_DISK_ENTRY* entry);
+ inline struct zzip_file_header*
+zzip_mem_disk_entry_to_file_header(ZZIP_MEM_DISK* dir,
+ ZZIP_DISK_ENTRY* entry);
+ inline char*
+zzip_mem_disk_entry_to_data(ZZIP_MEM_DISK* dir, ZZIP_DISK_ENTRY* entry);
+ inline ZZIP_DISK_ENTRY*
+zzip_mem_disk_findfile(ZZIP_MEM_DISK* dir,
+ char* filename, ZZIP_DISK_ENTRY* after,
+ zzip_strcmp_fn_t compare);
+ inline ZZIP_DISK_ENTRY*
+zzip_mem_disk_findmatch(ZZIP_MEM_DISK* dir,
+ char* filespec, ZZIP_DISK_ENTRY* after,
+ zzip_fnmatch_fn_t compare, int flags);
+ inline ZZIP_DISK_FILE* _zzip_restrict
+zzip_mem_disk_entry_fopen (ZZIP_MEM_DISK* dir, ZZIP_DISK_ENTRY* entry);
+ inline ZZIP_DISK_FILE* _zzip_restrict
+zzip_mem_disk_fopen (ZZIP_MEM_DISK* dir, char* filename);
+ inline _zzip_size_t
+zzip_mem_disk_fread (void* ptr, _zzip_size_t size, _zzip_size_t nmemb,
+ ZZIP_DISK_FILE* file);
+ inline int
+zzip_mem_disk_fclose (ZZIP_DISK_FILE* file);
+ inline int
+zzip_mem_disk_feof (ZZIP_DISK_FILE* file);
+</PRE>
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/mksite.pl b/Build/source/libs/zziplib/zziplib-src/docs/mksite.pl
new file mode 100644
index 00000000000..a463b3a9ce7
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/mksite.pl
@@ -0,0 +1,2634 @@
+#! /usr/bin/perl
+# this is the perl variant of the mksite script. It based directly on a
+# copy of mksite.sh which is derived from snippets that I was using to
+# finish doc pages for website publishing. Using only sh/sed along with
+# files has a great disadvantage: it is a very slow process atleast. The
+# perl language in contrast has highly optimized string, replace, search
+# functions as well as data structures to store intermediate values. As
+# an advantage large parts of the syntax are similar to the sh/sed variant.
+#
+# http://zziplib.sf.net/mksite/
+# THE MKSITE.SH (ZLIB/LIBPNG) LICENSE
+# Copyright (c) 2004 Guido U. Draheim <guidod@gmx.de>
+# 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.
+# $Id: mksite.pl,v 1.2 2006-09-22 00:33:22 guidod Exp $
+
+use strict; use warnings; no warnings "uninitialized";
+use File::Basename qw(basename);
+use POSIX qw(strftime);
+
+# initialize some defaults
+my $SITEFILE="";
+$SITEFILE="site.htm" if not $SITEFILE and -f "site.htm";
+$SITEFILE="site.html" if not $SITEFILE and -f "site.html";
+$SITEFILE="site.htm" if not $SITEFILE;
+# my $MK="-mksite"; # note the "-" at the start
+my $SED="sed";
+
+my $DATA="~~"; # extension for meta data files
+my $HEAD="~head~"; # extension for head sed script
+my $BODY="~body~"; # extension for body sed script
+my $FOOT="~foot~"; # append to body text (non sed)
+
+my $SED_LONGSCRIPT="$SED -f";
+
+my $az="a-z"; # for perl
+my $AZ="A-Z"; # we may assume there are
+my $NN="0-9"; # char-ranges available
+my $AA="_$NN$AZ$az"; # that makes the resulting
+my $AX="$AA.+-"; # script more readable
+
+my $n = "\n";
+my $Q = "q class";
+my $QX = "/q";
+
+# LANG="C" ; LANGUAGE="C" ; LC_COLLATE="C" # these are needed for proper
+# export LANG LANGUAGE LC_COLLATE # lowercasing as some collate
+ # treat A-Z to include a-z
+
+my @HTMLTAGS = qw/a p h1 h2 h3 h4 h5 h6 dl dd dt ul ol li pre code
+ table tr td th b u i s q em strong strike cite big small sup sub tt
+ thead tbody center hr br nobr wbr span div img adress blockquote/;
+my @HTMLTAGS2 = qw/html head body title meta http-equiv style link/;
+
+# ==========================================================================
+my $hint="";
+
+sub echo
+{
+ print join(" ",@_),$n;
+}
+sub error
+{
+ print STDERR "ERROR: ", join(" ",@_),$n;
+}
+sub warns
+{
+ print STDERR "WARN: ", join(" ",@_), $n;
+}
+sub hint
+{
+ print STDERR "NOTE: ", join(" ", @_), $n if $hint;
+}
+sub init
+{
+ $hint="1" if -d "DEBUG";
+}
+
+&init ("NOW!!!");
+
+sub ls_s {
+ my $x=`ls -s @_`;
+ chomp($x);
+ return $x;
+}
+
+# ==========================================================================
+# reading options from the command line GETOPT
+my %o = (); # to store option variables
+$o{variables}="files";
+$o{fileseparator}="?";
+$o{files}="";
+$o{main_file}="";
+$o{formatter}="$0";
+my $opt="";
+for my $arg (@ARGV) { # this variant should allow to embed spaces in $arg
+ if ($opt) {
+ $o{$opt}=$arg;
+ $opt="";
+ } else {
+ $_=$arg;
+ if (/^-.*=.*$/) {
+ $opt=$arg; $opt =~ s/-*([$AA][$AA-]*).*/$1/; $opt =~ y/-/_/;
+ if (not $opt) {
+ error "invalid option $arg";
+ } else {
+ $arg =~ s/^[^=]*=//;
+ $o{$opt} = $arg;
+ $o{variables} .= " ".$opt;
+ }
+ $opt="";;
+ } elsif (/^-.*.-.*$/) {
+ $opt=$arg; $opt =~ s/-*([$AA][$AA-]*).*/$1/; $opt =~ y/-/_/;
+ if (not $opt) {
+ error "invalid option $arg";
+ $opt="";
+ } else {
+ # keep the option for next round
+ } ;;
+ } elsif (/^-.*/) {
+ $opt=$arg; $opt =~ s/^-*([$AA][$AA-]*).*/$1/; $opt =~ y/-/_/;
+ if (not $opt) {
+ error "invalid option $arg";
+ } else {
+ $arg =~ s/^[^=]*=//;
+ $o{$opt} = ' ';
+ }
+ $opt="" ;;
+ } else {
+ hint "<$arg>";
+ if (not $o{main_file}) { $o{main_file} = $arg; } else {
+ $o{files} .= $o{fileseparator} if $o{files};
+ $o{files} .= $arg; };
+ $opt="" ;;
+ };
+ }
+} ; if ($opt) {
+ $o{$opt}=" ";
+ $opt="";
+ }
+
+### env | grep ^opt
+
+$SITEFILE=$o{main_file} if $o{main_file} and -f $o{main_file};
+$SITEFILE=$o{site_file} if $o{site_file} and -f $o{site_file};
+$hint="1" if $o{debug};
+
+if ($o{help}) {
+ $_=$SITEFILE;
+ echo "$0 [sitefile]";
+ echo " default sitefile = $_ ($o{main_file}) ($o{files})";
+ echo "options:";
+ echo " --filelist : show list of target files as ectracted from $_";
+ echo " --src-dir xx : if source files are not where mksite is executed";
+ echo " --tmp-dir xx : use temp instead of local directory";
+ echo " --tmp : use automatic temp directory in \$TEMP/mksite.*";
+ exit;
+ echo " internal:";
+ echo "--fileseparator=x : for building the internal filelist (def. '?')";
+ echo "--files xx : for list of additional files to be processed";
+ echo "--main-file xx : for the main sitefile to take file list from";
+}
+
+if (not $SITEFILE) {
+ error "no SITEFILE found (default would be 'site.htm')$n";
+ exit 1;
+} else {
+ hint "sitefile: ", ls_s($SITEFILE);
+}
+
+# we use internal hashes to store mappings - kind of relational tables
+my @MK_TAGS= (); # "./$MK.tags.tmp"
+my @MK_VARS= (); # "./$MK.vars.tmp"
+my @MK_SPAN= (); # "./$MK.span.tmp"
+my @MK_META= (); # "./$MK.meta.tmp"
+my @MK_METT= (); # "./$MK.mett.tmp"
+my @MK_TEST= (); # "./$MK.test.tmp"
+my @MK_FAST= (); # "./$MK.fast.tmp"
+my @MK_GETS= (); # "./$MK.gets.tmp"
+my @MK_PUTS= (); # "./$MK.puts.tmp"
+my @MK_OLDS= (); # "./$MK.olds.tmp"
+my @MK_SITE= (); # "./$MK.site.tmp"
+my @MK_SECT1= (); # "./$MK.sect1.tmp"
+my @MK_SECT2= (); # "./$MK.sect2.tmp"
+my @MK_SECT3= (); # "./$MK.sect3.tmp"
+my @MK_DATA= (); # "./$MK~~"
+my %DATA= (); # used for $F.$PARTs
+
+# ========================================================================
+# ========================================================================
+# ========================================================================
+# MAGIC VARS
+# IN $SITEFILE
+my $printerfriendly="";
+my $sectionlayout="list";
+my $sitemaplayout="list";
+my $attribvars=" "; # <x ref="${varname:=default}">
+my $updatevars=" "; # <!--$varname:=-->default
+my $expandvars=" "; # <!--$varname-->
+my $commentvars=" "; # $updatevars && $expandsvars
+my $sectiontab=" "; # highlight ^<td class=...>...href="$section"
+my $currenttab=" "; # highlight ^<br>..<a href="$topic">
+my $headsection="no";
+my $tailsection="no";
+my $sectioninfo="no"; # using <h2> title <h2> = info text
+my $emailfooter="no";
+
+for (source($SITEFILE)) {
+ if (/<!--multi-->/) {
+ warns("do not use <!--multi-->,"
+ ." change to <!--mksite:multi--> $SITEFILE"
+ ."warning: or"
+ ." <!--mksite:multisectionlayout-->"
+ ." <!--mksite:multisitemaplayout-->");
+ $sectionlayout="multi";
+ $sitemaplayout="multi";
+ }
+ if (/<!--mksite:multi-->/) {
+ $sectionlayout="multi";
+ $sitemaplayout="multi";
+ }
+ if (/<!--mksite:multilayout-->/) {
+ $sectionlayout="multi";
+ $sitemaplayout="multi";
+ }
+}
+
+sub mksite_magic_option
+{
+ # $1 is word/option to check for
+ my ($U,$INP,$Z) = @_;
+ $INP=$SITEFILE if not $INP;
+ for (source($INP)) {
+ s/(<!--mksite:)($U)-->/$1$2: -->/g;
+ s/(<!--mksite:)(\w\w*)($U)-->/$1$3:$2-->/g;
+ /<!--mksite:$U:/ or next;
+ s/.*<!--mksite:$U:([^<>]*)-->.*/$1/;
+ s/.*<!--mksite:$U:([^-]*)-->.*/$1/;
+ /<!--mksite:$U:/ and next;
+ chomp;
+ return $_;
+ }
+ return "";
+}
+
+{
+ my $x;
+ $x=mksite_magic_option("sectionlayout"); if
+ ($x =~ /^(list|multi)$/) { $sectionlayout="$x" ; }
+ $x=mksite_magic_option("sitemaplayout"); if
+ ($x =~ /^(list|multi)$/) { $sitemaplayout="$x" ; }
+ $x=mksite_magic_option("attribvars"); if
+ ($x =~ /^( |no|warn)$/) { $attribvars="$x" ; }
+ $x=mksite_magic_option("updatevars"); if
+ ($x =~ /^( |no|warn)$/) { $updatevars="$x" ; }
+ $x=mksite_magic_option("expandvars"); if
+ ($x =~ /^( |no|warn)$/) { $expandvars="$x" ; }
+ $x=mksite_magic_option("commentvars"); if
+ ($x =~ /^( |no|warn)$/) { $commentvars="$x" ; }
+ $x=mksite_magic_option("printerfriendly"); if
+ ($x =~ /^( |[.].*|[-]-.*)$/) { $printerfriendly="$x" ; }
+ $x=mksite_magic_option("sectiontab"); if
+ ($x =~ /^( |no|warn)$/) { $sectiontab="$x" ; }
+ $x=mksite_magic_option("currenttab"); if
+ ($x =~ /^( |no|warn)$/) { $currenttab="$x" ; }
+ $x=mksite_magic_option("sectioninfo"); if
+ ($x =~ /^( |no|[=:-])$/) { $sectioninfo="$x" ; }
+ $x=mksite_magic_option("commentvars"); if
+ ($x =~ /^( |no|warn)$/) { $commentvars="$x" ; }
+ $x=mksite_magic_option("emailfooter"); if
+ ($x) { $emailfooter="$x"; }
+}
+
+$printerfriendly=$o{print} if $o{print};
+$updatevars="no" if $commentvars eq "no"; # duplicated into
+$expandvars="no" if $commentvars eq "no"; # info2vars_sed
+
+hint "'$sectionlayout\'sectionlayout '$sitemaplayout\'sitemaplayout";
+hint "'$attribvars\'attribvars '$updatevars\'updatevars";
+hint "'$expandvars\'expandvars '$commentvars\'commentvars";
+hint "'$currenttab\'currenttab '$sectiontab\'sectiontab";
+hint "'$headsection\'headsection '$tailsection\'tailsection";
+
+# ==========================================================================
+# init a few global variables
+# 0. INIT
+
+# $MK.tags.tmp - originally, we would use a lambda execution on each
+# uppercased html tag to replace <P> with <p class="P">. Here we just
+# walk over all the known html tags and make an sed script that does
+# the very same conversion. There would be a chance to convert a single
+# tag via "h;y;x" or something we do want to convert all the tags on
+# a single line of course.
+@MK_TAGS=();
+{ my ($M,$P); for $M (@HTMLTAGS) {
+ $P=uc($M);
+ push @MK_TAGS, "s|<$P>|<$M class=\\\"$P\\\">|g;";
+ push @MK_TAGS, "s|<$P |<$M class=\\\"$P\\\" |g;";
+ push @MK_TAGS, "s|</$P>|</$M>|g;";
+}}
+push @MK_TAGS, "s|<>|\\&nbsp\\;|g;";
+push @MK_TAGS, "s|<->|<WBR />\\;|g;";
+push @MK_TAGS, "s|<c>|<code>|g;";
+push @MK_TAGS, "s|</c>|</code>|g;";
+push @MK_TAGS, "s|<section>||g;";
+push @MK_TAGS, "s|</section>||g;";
+push @MK_TAGS, "s|<(a [^<>]*) />|<\$1></a>|g";
+my $_ulink_="<a href=\"\$1\" remap=\"url\">\$1</a>";
+push @MK_TAGS, "s|<a>\\s*(\\w+://[^<>]*)</a>|$_ulink_|g;";
+# also make sure that some non-html entries are cleaned away that
+# we are generally using to inject meta information. We want to see
+# that meta ino in the *.htm browser view during editing but they
+# shall not get present in the final html page for publishing.
+my @DC_VARS =
+ ("contributor", "date", "source", "language", "coverage", "identifier",
+ "rights", "relation", "creator", "subject", "description",
+ "publisher", "DCMIType");
+my @_EQUIVS =
+ ("refresh", "expires", "content-type", "cache-control",
+ "redirect", "charset", # mapped to refresh / content-type
+ "content-language", "content-script-type", "content-style-type");
+{ my $P; for $P (@DC_VARS) { # dublin core embedded
+ push @MK_TAGS, "s|<$P>[^<>]*</$P>||g;";
+}}
+{ my $P; for $P (@_EQUIVS) {
+ push @MK_TAGS, "s|<$P>[^<>]*</$P>||g;";
+}}
+push @MK_TAGS, "s|<a sect=\\\"[$AZ$NN]\\\"|<a|g;" if not $o{keepsect};
+push @MK_TAGS, "s|<!--[$AX]*[?]-->||g;";
+push @MK_TAGS, "s|<!--\\\$[$AX]*[?]:-->||g;";
+push @MK_TAGS, "s|<!--\\\$[$AX]*:[?=]-->||g;";
+push @MK_TAGS, "s|(<[^<>]*)\\\${[$AX]*:[?=]([^<{}>]*)}([^<>]*>)|\$1\$2\$3|g;";
+
+my $TRIMM=" -e 's:^ *::' -e 's: *\$::'"; # trimm away leading/trailing spaces
+sub trimm
+{
+ my ($T,$Z) = @_;
+ $T =~ s:\A\s*::s; $T =~ s:\s*\Z::s;
+ return $T;
+}
+sub trimmm
+{
+ my ($T,$Z) = @_;
+ $T =~ s:\A\s*::s; $T =~ s:\s*\Z::s; $T =~ s:\s+: :g;
+ return $T;
+}
+sub timezone
+{
+ # +%z is an extension while +%Z is supposed to be posix
+ my $tz;
+ eval { $tz = strftime("%z", localtime()) };
+ return $tz if $tz =~ /[+]/;
+ return $tz if $tz =~ /[-]/;
+ return strftime("%Z", localtime());
+}
+
+sub timetoday
+{
+ return strftime("%Y-%m-%d", localtime());
+}
+sub timetodays
+{
+ return strftime("%Y-%m%d", localtime());
+}
+
+sub esc
+{
+ my ($TXT,$XXX) = @_;
+ $TXT =~ s|&|\\\\&|g;
+ return $TXT;
+}
+
+my %SOURCE;
+sub source # $file : @lines
+{
+ my ($FILE,$Z) = @_;
+ if (exists $SOURCE{$FILE}) { return @{$SOURCE{$FILE}}; }
+ my @TEXT = ();
+ open FILE, "<$FILE" or die "could not open $FILE: $!";
+ for my $line (<FILE>) {
+ push @TEXT, $line;
+ } close FILE;
+ @{$SOURCE{$FILE}} = @TEXT;
+ return @{$SOURCE{$FILE}};
+}
+sub savesource # $file \@lines
+{
+ my ($FILE,$LINES,$Z) = @_;
+ @{$SOURCE{$FILE}} = @{$LINES};
+}
+
+my $F; # current file during loop <<<<<<<<<
+my $i = 100;
+sub savelist {
+ if (-d "DEBUG") {
+ my ($script,$ext,$Z) = @_;
+ if (not $ext) { $ext = "_".$i; $i++; }
+ my $X = "$F.$ext.tmp.PL"; $X =~ s|/|:|g;
+ open X, ">DEBUG/$X" or die "could not open $X: $!";
+ print X "#! /usr/bin/env perl",$n;
+ print X "# ",$#_," $ext files ",localtime(),$n;
+ my $TEXT = join("$n", @{$script});
+ $TEXT =~ s|source\([^()]*\)|<>|;
+ print X $TEXT,$n; close X;
+ }
+}
+
+sub eval_MK_LIST # $str @list
+{
+ my $FILETYPE = $_[0]; shift @_;
+ my $result = $_[0]; shift @_;
+ my $extra = "";
+ my $script = "\$_ = \$result; my \$Z;";
+ $script .= join(";$n ", @_);
+ $script .= "$n;\$result = \$_;$n";
+ savelist([$script],$FILETYPE);
+ eval $script;
+ return $result.$extra;
+}
+
+sub eval_MK_FILE {
+ my $FILETYPE = $_[0]; shift @_;
+ my $FILENAME = $_[0]; shift @_;
+ my $result = "";
+ my $script = "my \$FILE; my \$extra = ''; my \$Z; $n";
+ $script.= "for (source('$FILENAME')) { $n";
+ $script.= join(";$n ", @_);
+ $script.= "$n; \$result .= \$_; ";
+ $script.= "$n if(\$extra){\$result.=\$extra;\$extra='';\$result.=\"\\n\"}";
+ $script.= "$n} if(\$extra){\$result.=\$extra;}$n";
+ savelist([$script],$FILETYPE);
+ eval $script;
+ return $result;
+}
+my $sed_add = "\$extra .= "; # "/r ";
+
+sub foo { print " '$F'$n"; }
+
+# ======================================================================
+# FUNCS
+
+my $SOURCEFILE; # current file <<<<<<<<
+my @FILELIST; # <<<<<<<
+
+sub sed_slash_key # helper to escape chars special in /anchor/ regex
+{ # currently escaping "/" "[" "]" "."
+ my $R = $_[0]; $R =~ s|[\"./[-]|\\$&|g; $R =~ s|\]|\\\\$&|g;
+ return $R;
+}
+sub sed_piped_key # helper to escape chars special in s|anchor|| regex
+{ # currently escaping "|" "[" "]" "."
+ my $R = $_[0]; $R =~ s/[\".|[-]/\\$&/g; $R =~ s/\]/\\\\$&/g;
+ return $R;
+}
+
+sub back_path # helper to get the series of "../" for a given path
+{
+ my ($R,$Z) = @_; if ($R !~ /\//) { return ""; }
+ $R =~ s|/[^/]*$|/|; $R =~ s|[^/]*/|../|g;
+ return $R;
+}
+
+sub dir_name
+{
+ my $R = $_[0]; $R =~ s:/[^/][^/]*\$::;
+ return $R;
+}
+
+sub info2vars_sed # generate <!--$vars--> substition sed addon script
+{
+ my ($INP,$Z) = @_;
+ $INP = \@{$DATA{$F}} if not $INP;
+ my @OUT = ();
+ my $V8=" *([^ ][^ ]*) +(.*)<$QX>";
+ my $V9=" *DC[.]([^ ][^ ]*) +(.*)<$QX>";
+ my $N8=" *([^ ][^ ]*) ([$NN].*)<$QX>";
+ my $N9=" *DC[.]([^ ][^ ]*) ([$NN].*)<$QX>";
+ my $V0="([<]*)\\\$";
+ my $V1="([^<>]*)\\\$";
+ my $V2="([^{<>}]*)";
+ my $V3="([^<>]*)";
+ my $SS="<"."<>".">"; # spacer so value="2004" dont make for s|\(...\)|\12004|
+ $Z="\$Z=";
+ $updatevars = "no" if $commentvars eq "no"; # duplicated from
+ $expandvars = "no" if $commentvars eq "no"; # option handling
+ my @_INP = (); for (@{$INP}) {
+ my $x=$_; $x =~ s/(>[^<>]*)'([^<>]*<)/$1\\'$2/; push @_INP, $x; # OOOOPS
+ }
+ if ($expandvars ne "no") {
+ for (@_INP) {
+ if (/^=....=formatter /) { next; }
+ elsif (/^<$Q='name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V0$1\\?-->|- \$Z|;"}
+ elsif (/^<$Q='Name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V0$1\\?-->|(\$Z)|;"}
+ elsif (/^<$Q='name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V0$1\\?-->|- \$Z|;"}
+ elsif (/^<$Q='Name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V0$1\\?-->|(\$Z)|;"}
+ }
+ }
+ if ($expandvars ne "no") {
+ for (@_INP) {
+ if (/^=....=formatter /) { next; }
+ elsif (/^<$Q='text'>$V9/){push @OUT, "\$Z='$2';s|<!--$V1$1-->|\$1$SS\$Z|;"}
+ elsif (/^<$Q='Text'>$V9/){push @OUT, "\$Z='$2';s|<!--$V1$1-->|\$1$SS\$Z|;"}
+ elsif (/^<$Q='name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V1$1\\?-->|\$1$SS\$Z|;"}
+ elsif (/^<$Q='Name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V1$1\\?-->|\$1$SS\$Z|;"}
+ elsif (/^<$Q='text'>$V8/){push @OUT, "\$Z='$2';s|<!--$V1$1-->|\$1$SS\$Z|;"}
+ elsif (/^<$Q='Text'>$V8/){push @OUT, "\$Z='$2';s|<!--$V1$1-->|\$1$SS\$Z|;"}
+ elsif (/^<$Q='name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V1$1\\?-->|\$1$SS\$Z|;"}
+ elsif (/^<$Q='Name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V1$1\\?-->|\$1$SS\$Z|;"}
+ }
+ }
+ if ($updatevars ne "no") {
+ for (@_INP) { my $H = "[^<>]*";
+ if (/^=....=formatter /) { next; }
+ elsif (/^<$Q='name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V0$1:\\?-->$H|- \$Z|;"}
+ elsif (/^<$Q='Name'>$V9/){push @OUT, "\$Z='$2';s|<!--$V0$1:\\?-->$H|(\$Z)|;"}
+ elsif (/^<$Q='name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V0$1:\\?-->$H|- \$Z|;"}
+ elsif (/^<$Q='Name'>$V8/){push @OUT, "\$Z='$2';s|<!--$V0$1:\\?-->$H|(\$Z)|;"}
+ }
+ }
+ if ($updatevars ne "no") {
+ for (@_INP) { my $H = "[^<>]*";
+ if (/^=....=formatter /) { next; }
+ elsif (/^<$Q='text'>$V9/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\=-->$H|\$1$SS\$Z|;"}
+ elsif (/^<$Q='Text'>$V9/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\=-->$H|\$1$SS\$Z|;"}
+ elsif (/^<$Q='name'>$V9/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\?-->$H|\$1$SS\$Z|;"}
+ elsif (/^<$Q='Name'>$V9/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\?-->$H|\$1$SS\$Z|;"}
+ elsif (/^<$Q='text'>$V8/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\=-->$H|\$1$SS\$Z|;"}
+ elsif (/^<$Q='Text'>$V8/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\=-->$H|\$1$SS\$Z|;"}
+ elsif (/^<$Q='name'>$V8/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\?-->$H|\$1$SS\$Z|;"}
+ elsif (/^<$Q='Name'>$V8/){push @OUT,"\$Z='$2';s|<!--$V1$1:\\?-->$H|\$1$SS\$Z|;"}
+ }
+ }
+ if ($attribvars ne "no") {
+ for (@_INP) { my $H = "[^<>]*";
+ if (/^=....=formatter /) { next; }
+ elsif (/^<$Q='text'>$V9/){push @OUT,"\$Z='$2';s|<$V1\{$1:[=]$V2}$V3>|<\$1$SS\$Z\$3>|;"}
+ elsif (/^<$Q='Text'>$V9/){push @OUT,"\$Z='$2';s|<$V1\{$1:[=]$V2}$V3>|<\$1$SS\$Z\$3>|;"}
+ elsif (/^<$Q='name'>$V9/){push @OUT,"\$Z='$2';s|<$V1\{$1:[?]$V2}$V3>|<\$1$SS\$Z\$3>|;"}
+ elsif (/^<$Q='Name'>$V9/){push @OUT,"\$Z='$2';s|<$V1\{$1:[?]$V2}$V3>|<\$1$SS\$Z\$3>|;"}
+ elsif (/^<$Q='text'>$V8/){push @OUT,"\$Z='$2';s|<$V1\{$1:[=]$V2}$V3>|<\$1$SS\$Z\$3>|;"}
+ elsif (/^<$Q='Text'>$V8/){push @OUT,"\$Z='$2';s|<$V1\{$1:[=]$V2}$V3>|<\$1$SS\$Z\$3>|;"}
+ elsif (/^<$Q='name'>$V8/){push @OUT,"\$Z='$2';s|<$V1\{$1:[?]$V2}$V3>|<\$1$SS\$Z\$3>|;"}
+ elsif (/^<$Q='Name'>$V8/){push @OUT,"\$Z='$2';s|<$V1\{$1:[?]$V2}$V3>|<\$1$SS\$Z\$3>|;"}
+ }
+ for (split / /, $o{variables}) {
+ {push @OUT,"\$Z='$o{$_}';s|<$V1\{$_:[?]$V2}$V3>|<\$1$SS\$Z\$3>|;"}
+ }
+ }
+ # if value="2004" then generated sed might be "\\12004" which is bad
+ # instead we generate an edited value of "\\1$SS$value" and cut out
+ # the spacer now after expanding the variable values:
+ push @OUT, "s|$SS||g;";
+ return @OUT;
+
+}
+
+sub info2meta_sed # generate <meta name..> text portion
+{
+ my ($INP,$XXX) = @_;
+ $INP = \@{$DATA{$F}} if not $INP;
+ my @OUT = ();
+ # http://www.metatab.de/meta_tags/DC_type.htm
+ my $V6=" *HTTP[.]([^ ]+) (.*)<$QX>";
+ my $V7=" *DC[.]([^ ]+) (.*)<$QX>";
+ my $V8=" *([^ ]+) (.*)<$QX>" ;
+ sub __TYPE_SCHEME { "name=\"DC.type\" content=\"$2\" scheme=\"$1\"" };
+ sub __DCMI { "name=\"$1\" content=\"$2\" scheme=\"DCMIType\"" };
+ sub __NAME { "name=\"$1\" content=\"$2\"" };
+ sub __NAME_TZ { "name=\"$1\" content=\"$2 ".&timezone()."\"" };
+ sub __HTTP { "http-equiv=\"$1\" content=\"$2\"" };
+ for (@$INP) {
+ if (/=....=today /) { next; }
+ if (/<$Q='meta'>HTTP[.]/ && /<$Q='meta'>$V6/) {
+ push @OUT, " <meta ${\(__HTTP)} />" if $2; next; }
+ if (/<$Q='meta'>DC[.]DCMIType / && /<$Q='meta'>$V7/) {
+ push @OUT, " <meta ${\(__TYPE_SCHEME)} />" if $2; next; }
+ if (/<$Q='meta'>DC[.]type Collection$/ && /<$Q='meta'>$V8/) {
+ push @OUT, " <meta ${\(__DCMI)} />" if $2; next; }
+ if (/<$Q='meta'>DC[.]type Dataset$/ && /<$Q='meta'>$V8/) {
+ push @OUT, " <meta ${\(__DCMI)} />" if $2; next; }
+ if (/<$Q='meta'>DC[.]type Event$/ && /<$Q='meta'>$V8/) {
+ push @OUT, " <meta ${\(__DCMI)} />" if $2; next; }
+ if (/<$Q='meta'>DC[.]type Image$/ && /<$Q='meta'>$V8/) {
+ push @OUT, " <meta ${\(__DCMI)} />" if $2; next; }
+ if (/<$Q='meta'>DC[.]type Service$/ && /<$Q='meta'>$V8/) {
+ push @OUT, " <meta ${\(__DCMI)} />" if $2; next; }
+ if (/<$Q='meta'>DC[.]type Software$/ && /<$Q='meta'>$V8/) {
+ push @OUT, " <meta ${\(__DCMI)} />" if $2; next; }
+ if (/<$Q='meta'>DC[.]type Sound$/ && /<$Q='meta'>$V8/) {
+ push @OUT, " <meta ${\(__DCMI)} />" if $2; next; }
+ if (/<$Q='meta'>DC[.]type Text$/ && /<$Q='meta'>$V8/) {
+ push @OUT, " <meta ${\(__DCMI)} />" if $2; next; }
+ if (/<$Q='meta'>DC[.]date[.].*[+]/ && /<$Q='meta'>$V8/) {
+ push @OUT, " <meta ${\(__NAME)} />" if $2; next; }
+ if (/<$Q='meta'>DC[.]date[.].*[:]/ && /<$Q='meta'>$V8/) {
+ push @OUT, " <meta ${\(__NAME_TZ)} />" if $2; next; }
+ if (/<$Q='meta'>/ && /<$Q='meta'>$V8/) {
+ push @OUT, " <meta ${\(__NAME)} />" if $2; next; }
+ }
+ return @OUT;
+}
+
+sub info_get_entry # get the first <!--vars--> value known so far
+{
+ my ($TXT,$INP,$XXX) = @_;
+ $TXT = "sect" if not $TXT;
+ $INP = \@{$DATA{$F}} if not $INP;
+ for (grep {/<$Q='text'>$TXT /} @$INP) {
+ my $info = $_;
+ $info =~ s|<$Q='text'>$TXT ||; $info =~ s|<$QX>||;
+ chomp($info); chomp($info); return $info;
+ }
+}
+
+sub info1grep # test for a <!--vars--> substition to be already present
+{
+ my ($TXT,$INP,$XXX) = @_;
+ $TXT = "sect" if not $TXT;
+ $INP = \@{$DATA{$F}} if not $INP;
+ return scalar(grep {/^<$Q='text'>$TXT /} @$INP); # returning the count
+}
+
+sub dx_init
+{
+ @{$DATA{$F}} = ();
+ &dx_meta ("formatter", basename($o{formatter}));
+ for (split / /, $o{variables}) { # commandline --def=value
+ if (/_/) { my $u=$_; $u =~ y/_/-/; # makes for <!--$def--> override
+ &dx_meta ($u, $o{$_});
+ } else { &dx_text ($_, $o{$_}); }
+ }
+}
+
+sub dx_line
+{
+ my ($U,$V,$W,$Z) = @_; chomp($U); chomp($V);
+ push @{$DATA{$F}}, "<$Q=$U>".$V." ".trimmm($W)."<$QX>";
+}
+
+sub DX_line
+{
+ my ($U,$V,$W,$Z) = @_; $W =~ s/<[^<>]*>//g;
+ &dx_line ($U,$V,$W);
+}
+
+sub dx_text
+{
+ my ($U,$V,$Z) = @_;
+ &dx_line ("'text'",$U,$V);
+}
+
+sub DX_text # add a <!--vars--> substition includings format variants
+{
+ my ($N, $T,$XXX) = @_;
+ $N = trimm($N); $T = trimm($T);
+ if ($N) {
+ if ($T) {
+ my $text=lc("$T"); $text =~ s/<[^<>]*>//g;
+ &dx_line ("'text'",$N,$T);
+ &dx_line ("'name'",$N,$text);
+ my $varname=$N; $varname =~ s/.*[.]//; # cut out front part
+ if ($N ne $varname and $varname) {
+ $text=lc("$varname $T"); $text =~ s/<[^<>]*>//g;
+ &dx_line ("'Text'",$varname,$T);
+ &dx_line ("'Name'",$varname,$text);
+ }
+ }
+ }
+}
+
+sub dx_meta
+{
+ my ($U,$V,$Z) = @_;
+ &DX_line ("'meta'",$U,$V);
+}
+
+sub DX_meta # add simple meta entry and its <!--vars--> subsitution
+{
+ my ($U,$V,$Z) = @_;
+ &DX_line ("'meta'",$U,$V);
+ &DX_text ("$U", $V);
+}
+
+sub DC_meta # add new DC.meta entry plus two <!--vars--> substitutions
+{
+ my ($U,$V,$Z) = @_;
+ &DX_line ("'meta'","DC.$U",$V);
+ &DX_text ("DC.$U", $V);
+ &DX_text ("$U", $V);
+}
+
+sub HTTP_meta # add new HTTP.meta entry plus two <!--vars--> substitutions
+{
+ my ($U,$V,$Z) = @_;
+ &DX_line ("'meta'","HTTP.$U",$V);
+ &DX_text ("HTTP.$U", $V);
+ &DX_text ("$U", $V);
+}
+
+sub DC_VARS_Of # check DC vars as listed in $DC_VARS global/generate DC_meta
+{ # the results will be added to .meta.tmp and .vars.tmp later
+ my ($FILENAME,$Z)= @_;
+ $FILENAME=$SOURCEFILE if not $FILENAME;
+ for my $M (@DC_VARS, "title") {
+ # scan for a <markup> of this name FIXME
+ my ($part,$text);
+ for (source($FILENAME)) {
+ /<$M>/ or next; s|.*<$M>||; s|</$M>.*||;
+ $part = trimm($_); last;
+ }
+ $text=$part; $text =~ s|^\w*:||; $text = trimm($text);
+ next if not $text;
+ # <mark:part> will be <meta name="mark.part">
+ if ($text ne $part) {
+ my $N=$part; $N =~ s/:.*//;
+ &DC_meta ("$M.$N", $text);
+ } elsif ($M eq "date") {
+ &DC_meta ("$M.issued", $text); # "<date>" -> "<date>issued:"
+ } else {
+ &DC_meta ("$M", $text);
+ }
+ }
+}
+
+sub HTTP_VARS_Of # check HTTP-EQUIVs as listed in $_EQUIV global then
+{ # generate meta tags that are http-equiv= instead of name=
+ my ($FILENAME,$Z)= @_;
+ $FILENAME=$SOURCEFILE if not $FILENAME;
+ for my $M (@_EQUIVS) {
+ # scan for a <markup> of this name FIXME
+ my ($part,$text);
+ for (source($FILENAME)) {
+ /<$M>/ or next; s|.*<$M>||; s|</$M>.*||;
+ $part = trimm($_); last;
+ }
+ $text=$part; $text =~ s|^\w*:||; $text = trimm($text);
+ next if not $text;
+ if ($M eq "redirect") {
+ &HTTP_meta ("refresh", "5; url=$text"); &DX_text ("$M", $text);
+ } elsif ($M eq "charset") {
+ &HTTP_meta ("content-type", "text/html; charset=$text");
+ } else {
+ &HTTP_meta ("$M", $text);
+ }
+ }
+}
+
+sub DC_isFormatOf # make sure there is this DC.relation.isFormatOf tag
+{ # choose argument for a fallback (usually $SOURCEFILE)
+ my ($NAME,$Z) = @_;
+ $NAME=$SOURCEFILE if not $NAME;
+ if (not &info1grep ("DC.relation.isFormatOf")) {
+ &DC_meta ("relation.isFormatOf", "$NAME");
+ }
+}
+
+sub DC_publisher # make sure there is this DC.publisher meta tag
+{ # choose argument for a fallback (often $USER)
+ my ($NAME,$Z) = @_;
+ $NAME=$ENV{"USER"} if not $NAME;
+ if (not &info1grep ("DC.publisher")) {
+ &DC_meta ("publisher", "$NAME");
+ }
+}
+
+sub DC_modified # make sure there is a DC.date.modified meta tag
+{ # maybe choose from filesystem dates if possible
+ my ($ZZ,$Z) = @_; # target file
+ if (not &info1grep ("DC.date.modified")) {
+ my @stats = stat($ZZ);
+ my $text = strftime("%Y-%m-%d", localtime($stats[9]));
+ &DC_meta ("date.modified", $text);
+ }
+}
+
+sub DC_date # make sure there is this DC.date meta tag
+{ # choose from one of the available DC.date.* specials
+ my ($ZZ,$Z) = @_; # source file
+ if (&info1grep ("DC.date")) {
+ &DX_text ("issue", "dated ".&info_get_entry("DC.date"));
+ &DX_text ("updated", &info_get_entry("DC.date"));
+ } else {
+ my $text=""; my $kind;
+ for $kind (qw/available issued modified created/) {
+ $text=&info_get_entry("DC.date.$kind");
+ # test ".$text" != "." && echo "$kind = date = $text ($ZZ)"
+ last if $text;
+ }
+ if (not $text) {
+ my $part; my $M="date";
+ for (source($ZZ)) {
+ /<$M>/ or next; s|.*<$M>||; s|</$M>.*||;
+ $part=trimm($_); last;
+ }
+ $text=$part; $text =~ s|^[$AA]*:||;
+ $text = &trimm ($text);
+ }
+ if (not $text) {
+ my $part; my $M="!--date:*=*--"; # takeover updateable variable...
+ for (source($ZZ)) {
+ /<$M>/ or next; s|.*<$M>||; s|</.*||;
+ $part=trimm($_); last;
+ }
+ $text=$part; $text =~ s|^[$AA]*:||; $text =~ s|\&.*||;
+ $text = &trimm ($text);
+ }
+ $text =~ s/[$NN]*:.*//; # cut way seconds
+ &DX_text ("updated", $text);
+ my $text1=$text; $text1 =~ s|^.* *updated ||;
+ if ($text ne $text1) {
+ $kind="modified" ; $text=$text1; $text =~ s|,.*||;
+ }
+ $text1=$text; $text1 =~ s|^.* *modified ||;
+ if ($text ne $text1) {
+ $kind="modified" ; $text=$text1; $text =~ s|,.*||;
+ }
+ $text1=$text; $text1 =~ s|^.* *created ||;
+ if ($text ne $text1) {
+ $kind="created" ; $text=$text1; $text =~ s|,.*||;
+ }
+ &DC_meta ("date", "$text");
+ &DX_text ("issue", "$kind $text");
+ }
+}
+
+sub DC_title
+{
+ # choose a title for the document, either an explicit title-tag
+ # or one of the section headers in the document or fallback to filename
+ my ($ZZ,$Z) = @_; # target file
+ my ($term, $text);
+ if (not &info1grep ("DC.title")) {
+ for my $M (qw/TITLE title H1 h1 H2 h2 H3 H3 H4 H4 H5 h5 H6 h6/) {
+ for (source($ZZ)) {
+ /<$M>/ or next; s|.*<$M>||; s|</$M>.*||;
+ $text = trimm($_); last;
+ }
+ last if $text;
+ for (source($ZZ)) {
+ /<$M [^<>]*>/ or next; s|.*<$M [^<>]*>||; s|</$M>.*||;
+ $text = trimm($_); last;
+ }
+ last if $text;
+ }
+ if (not $text) {
+ $text=basename($ZZ,".html");
+ $text=basename($text,".htm"); $text =~ y/_/ /; $text =~ s/$/ info/;
+ $text=~ s/\n/ /g;
+ }
+ $term=$text; $term =~ s/.*[\(]//; $term =~ s/[\)].*//;
+ $text =~ s/[\(][^\(\)]*[\)]//;
+ if (not $term or $term eq $text) {
+ &DC_meta ("title", "$text");
+ } else {
+ &DC_meta ("title", "$term - $text");
+ }
+ }
+}
+
+sub site_get_section # return parent section page of given page
+{
+ my $_F_ = &sed_slash_key(@_);
+ for my $x (grep {/<$Q='sect'>$_F_ /} @MK_DATA) {
+ my $info = $x; $info =~ s|<$Q='sect'>[^ ]* ||; $info =~ s|<$QX>||;
+ return $info;
+ }
+}
+
+sub DC_section # not really a DC relation (shall we use isPartOf ?)
+{ # each document should know its section father
+ my $sectn = &site_get_section($F);
+ if ($sectn) {
+ &DC_meta ("relation.section", $sectn);
+ }
+}
+
+sub info_get_entry_section
+{
+ return &info_get_entry("DC.relation.section");
+}
+
+sub site_get_selected # return section of given page
+{
+ my $_F_ = &sed_slash_key(@_);
+ for my $x (grep {/<$Q='[u]se.'>$_F_ /} @MK_DATA) {
+ my $info = $x;
+ $info =~ s/<$Q='[u]se.'>[^ ]* //; $info =~ s|<$QX>||;
+ return $info;
+ }
+}
+
+sub DC_selected # not really a DC title (shall we use alternative ?)
+{
+ # each document might want to highlight the currently selected item
+ my $short=&site_get_selected($F);
+ if ($short) {
+ &DC_meta ("title.selected", $short);
+ }
+}
+
+sub info_get_entry_selected
+{
+ return &info_get_entry("DC.title.selected");
+}
+
+sub site_get_rootsections # return all sections from root of nav tree
+{
+ my @OUT;
+ for (grep {/<$Q='[u]se1'>/} @MK_DATA) {
+ my $x = $_;
+ $x =~ s/<$Q='[u]se.'>([^ ]*) .*/$1/;
+ push @OUT, $x;
+ }
+ return @OUT;
+}
+
+sub site_get_sectionpages # return all children pages in the given section
+{
+ my $_F_=&sed_slash_key(@_);
+ my @OUT = ();
+ for (grep {/^<$Q='sect'>[^ ]* $_F_$/} @MK_DATA) {
+ my $x = $_;
+ $x =~ s/^<$Q='sect'>//; $x =~ s/ .*//; $x =~ s|<$QX>||;
+ push @OUT, $x;
+ }
+ return @OUT;
+}
+
+sub site_get_subpages # return all page children of given page
+{
+ my $_F_=&sed_slash_key(@_);
+ my @OUT = ();
+ for (grep {/^<$Q='node'>[^ ]* $_F_<[^<>]*>$/} @MK_DATA) {
+ my $x = $_;
+ $x =~ s/^<$Q='node'>//; $x =~ s/ .*//; $x =~ s|<$QX>||;
+ push @OUT, $x;
+ }
+ return @OUT;
+}
+
+sub site_get_parentpage # ret parent page for given page (".." for sections)
+{
+ my $_F_=&sed_slash_key(@_);
+ for (grep {/^<$Q='node'>$_F_ /} @MK_DATA) {
+ my $x = $_;
+ $x =~ s/^<$Q='node'>[^ ]* //; $x =~ s|<$QX>||;
+ return $x;
+ }
+}
+
+sub DX_alternative # detect wether page asks for alternative style
+{ # which is generally a shortpage variant
+ my ($U,$Z) = @_;
+ my $x=&mksite_magic_option("alternative",$U);
+ $x =~ s/^ *//; $x =~s/ .*//;
+ if ($x) {
+ &DX_text ("alternative", $x);
+ }
+}
+
+sub info2head_sed # append alternative handling script to $HEAD
+{
+ my @OUT = ();
+ my $have=&info_get_entry("alternative");
+ if ($have) {
+ push @OUT, "/<!--mksite:alternative:$have .*-->/ && do {";
+ push @OUT, "s/<!--mksite:alternative:$have( .*)-->/\$1/";
+ push @OUT, "$sed_add \$_; last; };";
+ }
+ return @OUT;
+}
+sub info2body_sed # append alternative handling script to $BODY
+{
+ my @OUT = ();
+ my $have=&info_get_entry("alternative");
+ if ($have) {
+ push @OUT, "s/<!--mksite:alternative:$have( .*)-->/\$1/";
+ }
+ return @OUT;
+}
+
+sub bodymaker_for_sectioninfo
+{
+ if ($sectioninfo eq "no") { return ""; }
+ my $_x_="<!--mksite:sectioninfo::-->";
+ my $_q_="([^<>]*[$AX][^<>]*)";
+ $_q_="[ ][ ]*$sectioninfo([ ])" if $sectioninfo ne " ";
+ my @OUT = ();
+ push @OUT, "s|(^<[hH][$NN][ >].*</[hH][$NN]>)$_q_|\$1$_x_\$2|";
+ push @OUT, "/$_x_/ and s|^|<table width=\"100%\"><tr valign=\"bottom\"><td>|";
+ push @OUT, "/$_x_/ and s|</[hH][$NN]>|&</td><td align=\"right\"><i>|";
+ push @OUT, "/$_x_/ and s|\$|</i></td></tr></table>|";
+ push @OUT, "s|$_x_||";
+ return @OUT;
+}
+
+sub fast_href # args "$FILETOREFERENCE" "$FROMCURRENTFILE:$F"
+{ # prints path to $FILETOREFERENCE href-clickable in $FROMCURRENTFILE
+ # if no subdirectoy then output is the same as input $FILETOREFERENCE
+ my ($T,$R,$Z) = @_;
+ my $S=&back_path ($R);
+ if (not $S) {
+ return $T;
+ } else {
+ my $t=$T;
+ $t =~ s/^ *$//; $t =~ s/^\/.*//;
+ $t =~ s/^[.][.].*//; $t =~ s/^\w*:.*//;
+ if (not $t) { # don't move any in the pattern above
+ return $T;
+ } else {
+ return "$S$T"; # prefixed with backpath
+ }
+ }
+}
+
+sub make_back_path # "$FILE"
+{
+ my ($R,$Z) = @_;
+ my $S=&back_path ($R);
+ my @OUT = ();
+ return @OUT if $S !~ /^\.\./;
+ push @OUT, "s|(<[^<>]*\\shref=\\\")(\\w[^<>:]*\\\"[^<>]*>)|\$1$S\$2|g;";
+ push @OUT, "s|(<[^<>]*\\ssrc=\\\")(\\w[^<>:]*\\\"[^<>]*>)|\$1$S\$2|g;";
+ return @OUT;
+}
+
+# ============================================================== SITE MAP DATA
+# each entry needs atleast a list-title, a long-title, and a list-date
+# these are the basic information to be printed in the sitemap file
+# where it is bound the hierarchy of sect/subsect of the entries.
+
+sub site_map_list_title # $file $text
+{
+ my ($U,$V,$Z) = @_; chomp($U);
+ push @MK_DATA, "<$Q='list'>$U ".trimm($V)."<$QX>";
+}
+sub info_map_list_title # $file $text
+{
+ my ($U,$V,$Z) = @_; chomp($U);
+ push @{$DATA{$U}}, "<$Q='list'>".trimm($V)."<$QX>";
+}
+sub site_map_long_title # $file $text
+{
+ my ($U,$V,$Z) = @_; chomp($U);
+ push @MK_DATA, "<$Q='long'>$U ".trimm($V)."<$QX>";
+}
+sub info_map_long_title # $file $text
+{
+ my ($U,$V,$Z) = @_; chomp($U);
+ push @{$DATA{$U}}, "<$Q='long'>".trimm($V)."<$QX>";
+}
+sub site_map_list_date # $file $text
+{
+ my ($U,$V,$Z) = @_; chomp($U);
+ push @MK_DATA, "<$Q='date'>$U ".trimm($V)."<$QX>";
+}
+sub info_map_list_date # $file $text
+{
+ my ($U,$V,$Z) = @_; chomp($U);
+ push @{$DATA{$U}}, "<$Q='date'>".trimm($V)."<$QX>";
+}
+
+sub site_get_list_title
+{
+ my ($U,$V,$Z) = @_;
+ for (@MK_DATA) { if (m|^<$Q='list'>$U (.*)<$QX>|) { return $1; } } return "";
+}
+sub site_get_long_title
+{
+ my ($U,$V,$Z) = @_;
+ for (@MK_DATA) { if (m|^<$Q='long'>$U (.*)<$QX>|) { return $1; } } return "";
+}
+sub site_get_list_date
+{
+ my ($U,$V,$Z) = @_;
+ for (@MK_DATA) { if (m|^<$Q='date'>$U (.*)<$QX>|) { return $1; } } return "";
+}
+
+sub siteinfo2sitemap# generate <name><page><date> addon sed scriptlet
+{ # the resulting script will act on each item/line
+ # containing <!--"filename"--> and expand any following
+ # reference of <!--name--> or <!--date--> or <!--long-->
+ my ($INP,$Z) = @_ ; $INP= \@MK_DATA if not $INP;
+ my @OUT = ();
+ my $_list_=
+ sub{"s|(<!--\\\"$1\\\"-->.*)<name [^<>]*>.*</name>|\$1<name href=\\\"$1\\\">$2</name>|"};
+ my $_date_=
+ sub{"s|(<!--\\\"$1\\\"-->.*)<date>.*</date>|\$1<date>$2</date>|"};
+ my $_long_=
+ sub{"s|(<!--\\\"$1\\\"-->.*)<long>.*</long>|\$1<long>$2</long>|"};
+
+ for (@$INP) {
+ my $info = $_;
+ $info =~ s:<$Q='list'>([^ ]*) (.*)<$QX>:&$_list_:e;
+ $info =~ s:<$Q='date'>([^ ]*) (.*)<$QX>:&$_date_:e;
+ $info =~ s:<$Q='long'>([^ ]*) (.*)<$QX>:&$_long_:e;
+ $info =~ /^s\|/ || next;
+ push @OUT, $info;
+ }
+ return @OUT;
+}
+
+sub make_multisitemap
+{ # each category gets its own column along with the usual entries
+ my ($INPUTS,$Z)= @_ ; $INPUTS=\@MK_DATA if not $INPUTS;
+ @MK_SITE = &siteinfo2sitemap(); # have <name><long><date> addon-sed
+ my @OUT = ();
+ my $_form_= sub{"<!--\"$2\"--><!--use$1--><long>$3</long><!--end$1-->"
+ ."<br><name href=\"$2\">$3</name><date>......</date>" };
+ my $_tiny_="small><small><small" ; my $_tinyX_="small></small></small ";
+ my $_tabb_="<br><$_tiny_> </$_tinyX_>" ; my $_bigg_="<big> </big>";
+ push @OUT, "<table width=\"100%\"><tr><td> ".$n;
+ for (grep {/<$Q='[Uu]se.'>/} @$INPUTS) {
+ my $x = $_;
+ $x =~ />\w\w\w\w*:/ and next; # name: http: ftp: mailto: ...
+ $x =~ s|<$Q='[Uu]se(.)'>([^ ]*) (.*)<$QX>|&$_form_|e;
+ $x = &eval_MK_LIST("multisitemap", $x, @MK_SITE);
+ $x =~ /<name/ or next;
+ $x =~ s|<!--[u]se1-->|</td><td valign=\"top\"><b>|;
+ $x =~ s|<!--[e]nd1-->|</b>|;
+ $x =~ s|<!--[u]se2-->|<br>|;
+ $x =~ s|<!--[u]se.-->|<br>|; $x =~ s/<!--[^<>]*-->/ /g;
+ $x =~ s|<name |<$_tiny_><a |; $x =~ s|</name>||;
+ $x =~ s|<date>|<small style="date">|;
+ $x =~ s|</date>|</small></a><br></$_tinyX_>|;
+ $x =~ s|<long>|<!--long-->|;
+ $x =~ s|</long>|<!--/long-->|;
+ chomp $x;
+ push @OUT, $x.$n;
+ }
+ push @OUT, "</td><tr></table>".$n;
+ return @OUT;
+}
+
+sub make_listsitemap
+{ # traditional - the body contains a list with date and title extras
+ my ($INPUTS,$Z)= @_ ; $INPUTS=\@MK_DATA if not $INPUTS;
+ @MK_SITE = &siteinfo2sitemap(); # have <name><long><date> addon-sed
+ my @OUT = ();
+ my $_form_=sub{
+ "<!--\"$2\"--><!--use$1--><name href=\"$2\">$3</name><date>......</date><long>$3</long>"};
+ my $_tabb_="<td>\&nbsp\;</td>";
+ push @OUT, "<table cellspacing=\"0\" cellpadding=\"0\">".$n;
+ my $xx;
+ for $xx (grep {/<$Q='[Uu]se.'>/} @$INPUTS) {
+ my $x = "".$xx;
+ $x =~ />\w\w\w\w*:/ and next;
+ $x =~ s|<$Q='[Uu]se(.)'>([^ ]*) (.*)<$QX>|&$_form_|e;
+ $x = &eval_MK_LIST("listsitemap", $x, @MK_SITE);
+ $x =~ /<name/ or next;
+ $x =~ s|<!--[u]se(1)-->|<tr class=\"listsitemap$1\"><td>*</td>|;
+ $x =~ s|<!--[u]se(2)-->|<tr class=\"listsitemap$1\"><td>-</td>|;
+ $x =~ s|<!--[u]se(.)-->|<tr class=\"listsitemap$1\"><td> </td>|;
+ $x =~ /<tr.class=\"listsitemap3\">/ and $x =~ s|(<name [^<>]*>)|$1- |;
+ $x =~ s|<!--[^<>]*-->| |g;
+ $x =~ s|<name href=\"name:sitemap:|<name href=\"|;
+ $x =~ s|<name |<td><a |; $x =~ s|</name>|</a></td>$_tabb_|;
+ $x =~ s|<date>|<td><small style="date">|;
+ $x =~ s|</date>|</small></td>$_tabb_|;
+ $x =~ s|<long>|<td><em><!--long-->|;
+ $x =~ s|</long>|<!--/long--></em></td></tr>|;
+ push @OUT, $x.$n;
+ }
+ for $xx (grep {/<$Q='[u]se.'>/} @$INPUTS) {
+ my $x = $xx;
+ $x =~ s/<$Q='[u]se.'>name:sitemap://; $x =~ s|<$QX>||; $x =~ s:\s*::gs;
+ if (-f $x) {
+ for (grep {/<tr.class=\"listsitemap\d\">/} source($x)) {
+ push @OUT, $_;
+ }
+ }
+ }
+ push @OUT, "</table>".$n;
+ return @OUT;
+}
+
+my $_xi_include_=
+ "<xi:include xmlns:xi=\"http://www.w3.org/2001/XInclude\" parse=\"xml\"";
+
+sub make_xmlsitemap
+{ # traditional - the body contains a list with date and title extras
+ my ($INPUTS,$Z)= @_ ; $INPUTS=\@MK_DATA if not $INPUTS;
+ @MK_SITE = &siteinfo2sitemap(); # have <name><long><date> addon-sed
+ my @OUT = ();
+ my $_form_=sub{"<!--\"$2\"--><name href=\"$2\">$3</name>"};
+ my $xx;
+ for $xx (grep {/<$Q='[Uu]se.'>/} @$INPUTS) {
+ my $x = "".$xx;
+ $x =~ />\w\w\w\w*:/ and next;
+ $x =~ s|<$Q='[Uu]se(.)'>([^ ]*) (.*)<$QX>|&$_form_|e;
+ $x = &eval_MK_LIST("listsitemap", $x, @MK_SITE);
+ $x =~ /<name/ or next;
+ $x =~ m|href="${SITEFILE}"| and next;
+ $x =~ m|href="${SITEFILE}l"| and next;
+ $x =~ s|(href="[^<>]*)\.html(")|$1.xml$2|g;
+ $x =~ s|.*<name|$_xi_include_$n |;
+ $x =~ s|>.*</name>| />|;
+ push @OUT, $x.$n;
+ }
+ return @OUT;
+}
+
+sub print_extension
+{
+ my ($ARG,$Z)= @_ ; $ARG=$o{print} if not $ARG;
+ if ($ARG =~ /^([.-])/) {
+ return $ARG;
+ } else {
+ return ".print";
+ }
+}
+
+sub from_sourcefile
+{
+ my ($U,$Z) = @_;
+ if (-f $U) {
+ return $U;
+ } elsif (-f "$o{src_dir}/$U") {
+ return "$o{src_dir}/$U";
+ } else {
+ return $U;
+ }
+}
+
+sub html_sourcefile # generally just cut away the trailing "l" (ell)
+{ # making "page.html" argument into "page.htm" return
+ my ($U,$Z) = @_;
+ my $_SRCFILE_=$U; $_SRCFILE_ =~ s/l$//;
+ my $_XMLFILE_=$U; $_XMLFILE_ =~ s/\.html$/.dbk/;
+ if (-f $_SRCFILE_) {
+ return $_SRCFILE_;
+ } elsif (-f $_XMLFILE_) {
+ return $_XMLFILE_;
+ } elsif (-f "$o{src_dir}/$_SRCFILE_") {
+ return "$o{src_dir}/$_SRCFILE_";
+ } elsif (-f "$o{src_dir}/$_XMLFILE_") {
+ return "$o{src_dir}/$_XMLFILE_";
+ } else {
+ return ".//$_SRCFILE_";
+ }
+}
+sub html_printerfile_sourcefile
+{
+ my ($U,$Z) = @_;
+ if (not $printerfriendly) {
+ $U =~ s/l\$//; return $U;
+ } else {
+ my $_ext_=&sed_slash_key(&print_extension($printerfriendly));
+ $U =~ s/l\$//; $U =~ s/$_ext_([.][\w]*)$/$1/; return $U;
+ }
+}
+
+sub fast_html_printerfile {
+ my ($U,$V,$Z) = @_;
+ my $x=&html_printerfile($U) ; return basename($x);
+# my $x=&html_printerfile($U) ; return &fast_href($x,$V);
+}
+
+sub html_printerfile # generate the printerfile for a given normal output
+{
+ my ($U,$Z) = @_;
+ my $_ext_=&esc(&print_extension($printerfriendly));
+ $U =~ s/([.][\w]*)$/$_ext_$1/; return $U; # index.html -> index.print.html
+}
+
+sub make_printerfile_fast # generate s/file.html/file.print.html/ for hrefs
+{ # we do that only for the $FILELIST
+ my ($U,$Z) = @_;
+ my $ALLPAGES=$U;
+ my @OUT = ();
+ for my $p (@$ALLPAGES) {
+ my $a=&sed_slash_key($p);
+ my $b=&html_printerfile($p);
+ if ($b ne $p) {
+ $b =~ s:/:\\/:g;
+ push @OUT,
+ "s/<a href=\\\"$a\\\"([^<>])*>/<a href=\\\"$b\\\"\$1>/;";
+ }
+ }
+ return @OUT;
+}
+
+sub echo_printsitefile_style
+{
+ my $_bold_="text-decoration : none ; font-weight : bold ; ";
+ return " <style>"
+ ."$n a:link { $_bold_ color : #000060 ; }"
+ ."$n a:visited { $_bold_ color : #000040 ; }"
+ ."$n body { background-color : white ; }"
+ ."$n </style>"
+ ."$n";
+}
+
+sub make_printsitefile_head # $sitefile
+{
+ my $MK_STYLE = &echo_printsitefile_style();
+ my @OUT = ();
+ for (source($SITEFILE)) {
+ if (/<head>/) { push @OUT, $_;
+ push @OUT, $MK_STYLE; next; }
+ if (/<title>/) { push @OUT, $_; next; }
+ if (/<\/head>/) { push @OUT, $_; next; }
+ if (/<body>/) { push @OUT, $_; next; }
+ if (/<link [^<>]*rel=\"shortcut icon\"[^<>]*>/) {
+ push @OUT, $_; next;
+ }
+ }
+ return @OUT;
+}
+
+# ------------------------------------------------------------------------
+# The printsitefile is a long text containing html href markups where
+# each of the href lines in the file is being prefixed with the section
+# relation. During a secondary call the printsitefile can grepp'ed for
+# those lines that match a given output fast-file. The result is a
+# navigation header with 1...3 lines matching the nesting level
+
+# these alt-texts will be only visible in with a text-mode browser:
+my $printsitefile_square="width=\"8\" height=\"8\" border=\"0\"";
+my $printsitefile_img_1="<img alt=\"|go text:\" $printsitefile_square />";
+my $printsitefile_img_2="<img alt=\"||topics:\" $printsitefile_square />";
+my $printsitefile_img_3="<img alt=\"|||pages:\" $printsitefile_square />";
+my $_SECT="mksite:sect:";
+
+sub echo_current_line # $sect $extra
+{
+ # add the prefix which is used by select_in_printsitefile to cut out things
+ my ($N,$M,$Z) = @_;
+ return "<!--$_SECT\"$N\"-->$M";
+}
+sub make_current_entry # $sect $file ## requires $MK_SITE
+{
+ my ($S,$R,$Z) = @_;
+ my $RR=&sed_slash_key($R);
+ my $sep=" - " ; my $_left_=" [ " ; my $_right_=" ] ";
+ my $name = site_get_list_title($R);
+ $_ = &echo_current_line ("$S", "<a href=\"$R\">$name</a>$sep");
+ if ($R eq $S) {
+ s/<a href/$_left_$&/;
+ s/<\/a>/$&$_right_/;
+ }
+ return $_;
+}
+sub echo_subpage_line # $sect $extra
+{
+ my ($N,$M,$Z) = @_;
+ return "<!--$_SECT*:\"$N\"-->$M";
+}
+
+sub make_subpage_entry
+{
+ my ($S,$R,$Z) = @_;
+ my $RR=&sed_slash_key($R);
+ my $sep=" - " ;
+ my $name = site_get_list_title($R);
+ $_ = &echo_subpage_line ("$S", "<a href=\"$R\">$name</a>$sep");
+ return $_;
+}
+
+sub make_printsitefile
+{
+ # building the printsitefile looks big but its really a loop over sects
+ my ($INPUTS,$Z) = @_; $INPUTS=\@MK_DATA if not $INPUTS;
+ @MK_SITE = &siteinfo2sitemap(); # have <name><long><date> addon-sed
+ savelist(\@MK_SITE,"SITE");
+
+ my @OUT = &make_printsitefile_head ($SITEFILE);
+ my $sep=" - " ;
+ my $_sect1=
+ "<a href=\"#.\" title=\"section\">$printsitefile_img_1</a> ||$sep";
+ my $_sect2=
+ "<a href=\"#.\" title=\"topics\">$printsitefile_img_2</a> ||$sep";
+ my $_sect3=
+ "<a href=\"#.\" title=\"pages\">$printsitefile_img_3</a> ||$sep";
+
+ my $_SECT1="mksite:sect1";
+ my $_SECT2="mksite:sect2";
+ my $_SECT3="mksite:sect3";
+
+ @MK_SECT1 = &site_get_rootsections();
+ # round one - for each root section print a current menu
+ for my $r (@MK_SECT1) {
+ push @OUT, &echo_current_line ("$r", "<!--$_SECT1:A--><br>$_sect1");
+ for my $s (@MK_SECT1) {
+ push @OUT, &make_current_entry ("$r", "$s");
+ }
+ push @OUT, &echo_current_line ("$r", "<!--$_SECT1:Z-->");
+ }
+
+ # round two - for each subsection print a current and subpage menu
+ for my $r (@MK_SECT1) {
+ @MK_SECT2 = &site_get_subpages ("$r");
+ for my $s (@MK_SECT2) {
+ push @OUT, &echo_current_line ("$s", "<!--$_SECT2:A--><br>$_sect2");
+ for my $t (@MK_SECT2) {
+ push @OUT, &make_current_entry ("$s", "$t");
+ } # "$t"
+ push @OUT, &echo_current_line ("$s", "<!--$_SECT2:Z-->");
+ } # "$s"
+ my $_have_children_="";
+ for my $t (@MK_SECT2) {
+ if (not $_have_children_) {
+ push @OUT, &echo_subpage_line ("$r", "<!--$_SECT2:A--><br>$_sect2"); }
+ $_have_children_ .= "1";
+ push @OUT, &make_subpage_entry ("$r", "$t");
+ }
+ if ($_have_children_) {
+ push @OUT, &echo_subpage_line ("$r", "<!--$_SECT2:Z-->"); }
+ } # "$r"
+
+ # round three - for each subsubsection print a current and subpage menu
+ for my $r (@MK_SECT1) {
+ @MK_SECT2 = &site_get_subpages ("$r");
+ for my $s (@MK_SECT2) {
+ @MK_SECT3 = &site_get_subpages ("$s");
+ for my $t (@MK_SECT3) {
+ push @OUT, &echo_current_line ("$t", "<!--$_SECT3:A--><br>$_sect3");
+ for my $u (@MK_SECT3) {
+ push @OUT, &make_current_entry ("$t", "$u");
+ } # "$t"
+ push @OUT, &echo_current_line ("$t", "<!--$_SECT3:Z-->");
+ } # "$t"
+ my $_have_children_="";
+ for my $u (@MK_SECT3) {
+ if (not $_have_children_) {
+ push @OUT, &echo_subpage_line ("$s", "<!--$_SECT3:A--><br>$_sect3"); }
+ $_have_children_ .= "1";
+ push @OUT, &make_subpage_entry ("$s", "$u");
+ }
+ if ($_have_children_) {
+ push @OUT, &echo_subpage_line ("$s", "<!--$_SECT3:Z-->"); }
+ } # "$s"
+ } # "$r"
+ push @OUT, "<a name=\".\"></a>";
+ push @OUT, "</body></html>";
+ savelist(\@OUT,"FORM");
+ return @OUT;
+}
+
+# create a selector that can grep a printsitefile for the matching entries
+sub select_in_printsitefile # arg = "page" : return to stdout >> $P.$HEAD
+{
+ my ($N,$Z) = @_;
+ my $_selected_="$N" ; $_selected_="$F" if not $_selected_;
+ my $_section_=&sed_slash_key($_selected_);
+ my @OUT = ();
+ push @OUT, "s/^<!--$_SECT\\\"$_section_\\\"-->//;"; # sect3
+ push @OUT, "s/^<!--$_SECT\[*\]:\\\"$_section_\\\"-->//;"; # children
+ $_selected_=&site_get_parentpage($_selected_);
+ $_section_=&sed_slash_key($_selected_);
+ push @OUT, "s/^<!--$_SECT\\\"$_section_\\\"-->//;"; # sect2
+ $_selected_=&site_get_parentpage($_selected_);
+ $_section_=&sed_slash_key($_selected_);
+ push @OUT, "s/^<!--$_SECT\\\"$_section_\\\"-->//;"; # sect1
+ push @OUT, "/^<!--$_SECT\\\"[^\\\"]*\\\"-->/ and next;";
+ push @OUT, "/^<!--$_SECT\[*\]:\\\"[^\\\"]*\\\"-->/ and next;";
+ push @OUT, "s/^<!--mksite:sect[$NN]:[$AZ]-->//;";
+ return @OUT;
+}
+
+sub body_for_emailfooter
+{
+ return "" if $emailfooter eq "no";
+ my $_email_=$emailfooter; $_email_ =~ s|[?].*||;
+ my $_dated_=&info_get_entry("updated");
+ return "<hr><table border=\"0\" width=\"100%\"><tr><td>"
+ ."$n"."<a href=\"mailto:$emailfooter\">$_email_</a>"
+ ."$n"."</td><td align=\"right\">"
+ ."$n"."$_dated_</td></tr></table>"
+ ."$n";
+}
+
+# =================================================================== CSS
+# There was another project to support sitemap build from xml files.
+# The source format was using .dbk+xml with embedded references to .css
+# files for visual preview in a browser. An docbook xml file with semantic
+# outlines is far better suited for quality documentation than any html
+# source. It happens that the xml/css support in browsers is still not
+# very portable - especially embedded css style blocks are a nightmare.
+# Instead we (a) grab all non-html xml markup tags (b) grab all referenced
+# css stylesheets (c) cut out css defs from [b] that are known by [a] and
+# (d) append those to the <style> tag in the output html file as well as
+# (e) reformatting the defs as well as markups from tags to tag classes.
+# Input dbk/htm
+# <?xml-stylesheet type="text/css" href="html.css" ?> <!-- dbk/xml -->
+# <link rel="stylesheet" type="text/css" href="sdocbook.css" /> <!-- xhtml -->
+# <article><para>
+# Using some <command>exe</command>
+# </para></article>
+# Input css:
+# article { .. ; display : block }
+# para { .. ; display : block }
+# command { .. ; display : inline }
+# Output html:
+# <html><style type="text/css">
+# div .article { .. }
+# div .para { .. }
+# span .command { .. }
+# </style>
+# <div class="article"><div class="para>
+# Using some <span class="command">exe</span>
+# </div></div>
+
+sub css_sourcefile
+{
+ my ($X,$XXX) = @_;
+ return $X if -f $X;
+ return "$o{src_dir}/$X" if -f "$o{src_dir}/$X";
+ return "$X" if "$X" =~ m:^/:;
+ return "./$X";
+}
+
+my %XMLTAGS = ();
+sub css_xmltags # $SOURCEFILE
+{
+ my $X=$SOURCEFILE;
+ my %R = ();
+ my $line;
+ foreach $line (source($SOURCEFILE)) {
+ $line =~ s|>[^<>]*<|><|g;
+ $line =~ s|^[^<>]*<|<|;
+ $line =~ s|>[^<>]*\$|>|;
+ my $item;
+ foreach $item (split /</, $line) {
+ $item =~ m:^/: and next;
+ $item =~ m:^\s*$: and next;
+ $item !~ m|>| and next;
+ $item =~ s|>.*||;
+ chomp $item;
+ $R{$item} = "";
+ }
+ }
+ @{$XMLTAGS{$X}} = keys %R;
+}
+
+my %XMLSTYLESHEETS = ();
+sub css_xmlstyles # $SOURCEFILE
+{
+ my $X=$SOURCEFILE;
+ my %R = ();
+ my $text = "";
+ my $line = "";
+ foreach $line (source($SOURCEFILE)) {
+ $text .= $line;
+ $text =~ s|<link *rel=[\'\"]*stylesheet|<?xml-stylesheet |;
+ if ($text !~ m/<.xml-stylesheet/) { $text = ""; next; }
+ if ($text !~ m/href=/) { next; }
+ $text =~ s|^.*<.xml-stylesheet||;
+ $text =~ s|^.*href=[\"\']||; $text =~ s|[\"\'].*||s;
+ chomp $text;
+ $R{$text} = "";
+ }
+ foreach $line (source($SITEFILE)) {
+ $text .= $line;
+ $text =~ s|<link *rel=[\'\"]*stylesheet|<?xml-stylesheet |;
+ if ($text !~ m/<.xml-stylesheet/) { $text = ""; next; }
+ if ($text !~ m/href=/) { next; }
+ $text =~ s|^.*<.xml-stylesheet||;
+ $text =~ s|^.*href=[\"\']||; $text =~ s|[\"\'].*||s;
+ chomp $text;
+ $R{$text} = "";
+ }
+ @{$XMLSTYLESHEETS{$X}} = keys %R;
+}
+
+my %XMLTAGSCSS = ();
+sub css_xmltags_css # $SOURCEFILE
+{
+ my $X=$SOURCEFILE;
+ my @S = $XMLTAGS{$X};
+ my @R = ();
+ my $xmlstylesheet;
+ foreach $xmlstylesheet (@{$XMLSTYLESHEETS{$X}}) {
+ my $stylesheet = css_sourcefile($xmlstylesheet);
+ if (-f $stylesheet) {
+ push @R, "/* $xmlstylesheet */";
+ my $text = "";
+ my $line = "";
+ my $STYLESHEET = $stylesheet;
+ open STYLESHEET, "<$STYLESHEET" or next;
+ foreach $line (<STYLESHEET>)
+ {
+ $text .= $line;
+ if ($text =~ /^[^\{]*\}/s) { $text = ""; next; }
+ if ($text !~ /^[^\{]*\{.*\}/s) { next; }
+ $text =~ s|\r||g;
+ my $xmltag; my $found = 0;
+ foreach $xmltag (grep /^\w/, @{$XMLTAGS{$X}}) {
+ $xmltag =~ s| .*||;
+ if (grep {$_ eq $xmltag} qw/title section/) {
+ next if $xmltag eq "section";
+ $found++ if $text =~
+ /\b$xmltag\s*(?:,[^{},]*)*\s*\{/s;
+ my $xmlparent;
+ foreach $xmlparent (@{$XMLTAGS{$X}}) {
+ $xmlparent =~ s| .*||;
+ /^\w/ or next;
+ $found++ if $text =~
+ /\b$xmlparent\s+$xmltag\s*(?:,[^{},]*)*\s*\{/s;
+ }
+ } else {
+ $found++ if $text =~
+ /\b$xmltag\s*(?:,[^\{\},]*)*\{/s;
+ }
+ last if $found;
+ }
+ if (not $found) { $text = ""; next; }
+ foreach $xmltag (grep /^\w/, @{$XMLTAGS{$X}}) {
+ $xmltag =~ s| .*||;
+ if (grep {$_ eq $xmltag} @HTMLTAGS) { next; }
+ if (grep {$_ eq $xmltag} @HTMLTAGS2) { next; }
+ $text =~ s/(\b$xmltag\s*(?:,[^{},]*)*\s*\{)/.$1/gs;
+ }
+ chomp $text;
+ push @R, $text; $text = ""; next;
+ }
+ } else {
+ warn "$xmlstylesheet : ERROR, no such stylesheet $xmlstylesheet";
+ }
+ }
+ @{$XMLTAGSCSS{$X}} = @R;
+}
+
+my %XMLMAPPING = ();
+sub css_xmlmapping # $SOURCEFILE
+{
+ my $X=$SOURCEFILE;
+ my %R = ();
+ foreach (@{$XMLTAGSCSS{$X}}) {
+ my $span = "";
+ $span="li" if /\bdisplay\s*:\s*list-item\b/;
+ $span="caption" if /\bdisplay\s*:\s*table-caption\b/;
+ $span="td" if /\bdisplay\s*:\s*table-cell\b/;
+ $span="tr" if /\bdisplay\s*:\s*table-row\b/;
+ $span="table" if /\bdisplay\s*:\s*table\b/;
+ $span="div" if /\bdisplay\s*:\s*block\b/;
+ $span="span" if /\bdisplay\s*:\s*inline\b/;
+ $span="small" if /\bdisplay\s*:\s*none\b/;
+ $span="ul" if /\blist-style-type\s*:\s*disc\b/ and $span eq "div";
+ $span="ol" if /\blist-style-type\s*:\s*decimal\b/ and $span eq "div";
+ $span="tt" if /\bfont-family\s*:\s*monospace\b/ and $span eq "span";
+ $span="em" if /\bfont-style\s*:\s*italic\b/ and $span eq "span";
+ $span="b" if /\bfont-weight\s*:\s*bold\b/ and $span eq "span";
+ $span="pre" if /\bwhite-space\s*:\s*pre\b/ and $span eq "div";
+ my $xmltag;
+ for $xmltag (grep /^\w/, @{$XMLTAGS{$X}}) {
+ $xmltag =~ s| .*||;
+ if (/\.$xmltag\b/s) {
+ $R{$xmltag} = $span;
+ $R{$xmltag} = "p" if $xmltag eq "para" and $span eq "div";
+ $R{$xmltag} = "a" if $xmltag eq "ulink" and $span eq "span";
+ }
+ }
+ }
+ %{$XMLMAPPING{$X}} = %R;
+}
+
+sub css_scan # $SOURCEFILE
+{
+ css_xmltags ();
+ css_xmlstyles ();
+ css_xmltags_css ();
+ css_xmlmapping ();
+}
+
+sub tags2span_sed # $SOURCEFILE > $++
+{
+ my $X=$SOURCEFILE;
+ my $xmltag;
+ my @R = ();
+ push @R, "s|<[?]xml-stylesheet[^<>]*[?]>||";
+ push @R, "s|<link *rel=['\"]*stylesheet[^<>]*>||";
+ push @R, "s|<section[^<>]*>||g;";
+ push @R, "s|</section[^<>]*>||g;";
+ for $xmltag (grep /^\w/, @{$XMLTAGS{$X}}) {
+ $xmltag =~ s| .*||;
+ if (grep {$_ eq $xmltag} @HTMLTAGS) { next; }
+ if (grep {$_ eq $xmltag} @HTMLTAGS2) { next; }
+ my $span = $XMLMAPPING{$X}{$xmltag};
+ $span = "span" if $span eq "";
+ push @R, "s|<$xmltag([\\n\\t ][^<>]*)url=|<$span class=\"$xmltag\"\$1href=|g;";
+ push @R, "s|<$xmltag([\\n\\t >])|<$span class=\"$xmltag\"\$1|g;";
+ push @R, "s|</$xmltag([\\n\\t >])|</$span\$1|g;";
+ }
+ my $xmlstylesheet;
+ foreach $xmlstylesheet (@{$XMLSTYLESHEETS{$X}}) {
+ my $H="[^<>]*href=[\'\"]${xmlstylesheet}[\'\"][^<>]*";
+ push @R, "s|<[?]xml-stylesheet$H>||;";
+ push @R, "s|<link[^<>]* rel=['\"]*stylesheet['\"]$H>||;";
+ }
+ return @R;
+}
+
+sub tags2meta_sed # $SOURCEFILE > $++
+{
+ my @R = ();
+ push @R, " <style type=\"text/css\"><!--";
+ push @R, map {s/(^|\n)/$1 /g;$_} @{$XMLTAGSCSS{$SOURCEFILE}};
+ push @R, " --></style>";
+ @R = () if $#R < 3;
+ return @R;
+}
+
+# ==========================================================================
+# xml/docbook support is taking an dbk input file converting any html DBK
+# syntax into pure docbook tagging. Each file is being given a docbook
+# doctype so that an xml/docbook viewer can render it correctly - that
+# is needed atleast since docbook files do not embed stylesheet infos.
+# Most of the processing is related to remap html markup and some other
+# shortcut markup into correct docbook markup. The result is NOT checked
+# for being well-formed or even matching the docbook schema DTD at all.
+
+sub scan_xml_rootnode
+{
+ my ($INF,$XXX) = @_;
+ $INF = \@{$DATA{$F}} if not $INF;
+ for my $entry (source($SOURCEFILE)) {
+ my $line = $entry; next if $line !~ /<\w/;
+ $line =~ s/<(\w*).*/$1/s;
+ # print ":",$line,$n;
+ push @{$INF}, "<!root $F>$line";
+ return;
+ }
+}
+
+sub get_xml_rootnode
+{
+ my ($INF,$XXX) = @_;
+ $INF = \@{$DATA{$F}} if not $INF;
+ my $_file_ = sed_slash_key($F);
+ foreach my $entry (grep /^<!root $_file_>/, @{$INF}) {
+ my $line=$entry; $line =~ s|.*>||;
+ return $line;
+ }
+}
+
+sub xml_sourcefile
+{
+ my ($X,$XXX) = @_;
+ my $XMLFILE=$X; $XMLFILE =~ s/\.xml$/.dbk/;
+ my $SRCFILE=$X; $SRCFILE =~ s/\.xml$/.htm/;
+ $XMLFILE="///" if $X eq $XMLFILE;
+ $SRCFILE="///" if $X eq $SRCFILE;
+ return $XMLFILE if -f $XMLFILE;
+ return $SRCFILE if -f $SRCFILE;
+ return "$o{src_dir}/$XMLFILE" if -f "$o{src_dir}/$XMLFILE";
+ return "$o{src_dir}/$SRCFILE" if -f "$o{src_dir}/$SRCFILE";
+ return ".//$XMLFILE"; # $++ (not found?)
+}
+
+sub scan_xmlfile
+{
+ $SOURCEFILE= &xml_sourcefile($F);
+ hint "'$SOURCEFILE': scanning xml -> '$F'";
+ scan_xml_rootnode();
+ my $rootnode=&get_xml_rootnode(); $rootnode =~ s|^(h\d.*$)|$1 <?section?>|;
+ hint "'$SOURCEFILE': rootnode ('$rootnode')";
+}
+
+sub make_xmlfile
+{
+ $SOURCEFILE= &xml_sourcefile($F);
+ my $X=$SOURCEFILE;
+ my $article= &get_xml_rootnode();
+ $article="article" if $article eq "";
+ my $text = "";
+ $text .= '<!DOCTYPE '.$article.
+ ' PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"'.$n;
+ $text .= ' "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">'
+ .$n;
+ for my $stylesheet (@{$XMLSTYLESHEETS{$X}}) {
+ $text .= "<?xml-stylesheet type=\"text/css\" href=\"$stylesheet\" ?>"
+ .$n;
+ }
+ for (source($SOURCEFILE)) {
+ s!<>!\&nbsp\;!g;
+ s!(&)(&)!${1}amp;${2}amp;!g;
+ s!(<[^<>]*)(width)(=)(\d+\%*)!$1$2$3\"$4\"!g;
+ s!(<[^<>]*)(cellpadding)(=)(\d+\%*)!$1$2$3\"$4\"!g;
+ s!(<[^<>]*)(border)(=)(\d+\%*)!$1$2$3\"$4\"!g;
+ s!<[?]xml-stylesheet[^<>]*>!!;
+ s!<link[^<>]* rel=[\'\"]*stylesheet[^<>]*>!!;
+ s!<[hH]\d!<title!g;
+ s!</[hH]\d!</title!g;
+ s!(</title> *)([^<>]*\w[^<>\r\n]*)$!$1<sub>$2</sub>!;
+ s!(</title>.*)<sub>!$1<subtitle>!g;
+ s!(</title>.*)</sub>!$1</subtitle>!g;
+ s!(<section>[^<>]*)(<date>.*</date>[^<>\n]*)$!$1<sectioninfo>$2</sectioninfo>!gx;
+ s!<em>!<emphasis>!g;
+ s!</em>!</emphasis>!g;
+ s!<i>!<emphasis>!g;
+ s!</i>!</emphasis>!g;
+ s!<b>!<emphasis role=\"bold\">!g;
+ s!</b>!</emphasis>!g;
+ s!<u>!<emphasis role=\"underline\">!g;
+ s!</u>!</emphasis>!g;
+ s!<big>!<emphasis role=\"strong\">!g;
+ s!</big>!</emphasis>!g;
+ s!<(s|strike)>!<emphasis role=\"strikethrough\">!g;
+ s!</(s|strike)>!</emphasis>!g;
+ s!<center>!<blockquote><para>!g;
+ s!</center>!</para></blockquote>!g;
+ s!<p align=(\"\w*\")>!<para role=${1}>!g;
+ s!<[pP]>!<para>!g;
+ s!</[pP]>!</para>!g;
+ s!<(pre|PRE)>!<screen>!g;
+ s!</(pre|PRE)>!</screen>!g;
+ s!<a( [^<>]*)name=([^<>]*)/>!<anchor ${1}id=${2}/>!g;
+ s!<a( [^<>]*)name=([^<>]*)>!<anchor ${1}id=${2}/>!g;
+ s!<a( [^<>]*)href=!<ulink${1}url=!g;
+ s!</a>!</ulink>!g;
+ s! remap=\"url\">[^<>]*</ulink>! />!g;
+ s!<(/?)span(\s[^<>]*)?>!<${1}phrase${2}>!g;
+ s!<small(\s[^<>]*)?>!<phrase role=\"small\"${1}>!g;
+ s!</small(\s[^<>]*)?>!</phrase${1}>!g;
+ s!<(/?)(sup)>!<${1}superscript>!g;
+ s!<(/?)(sub)>!<${1}subscript>!g;
+ s!(<)(li)(><)!${1}listitem${3}!g;
+ s!(></)(li)(>)!${1}listitem${3}!g;
+ s!(<)(li)(>)!${1}listitem${3}<para>!g;
+ s!(</)(li)(>)!</para>${1}listitem${3}!g;
+ s!(</?)(ul)>!${1}itemizedlist>!g;
+ s!(</?)(ol)>!${1}orderedlist>!g;
+ s!(</?)(dl)>!${1}variablelist>!g;
+ s!<(/?)DT>!<${1}dt>!g;
+ s!<(/?)DD>!<${1}dd>!g;
+ s!<(/?)DL>!<${1}dl>!g;
+ s!<BLOCKQUOTE>!<blockquote><para>!g;
+ s!</BLOCKQUOTE>!</para></blockquote>!g;
+ s!<(/?)dl>!<${1}variablelist>!g;
+ s!<dt\b([^<>]*)>!<varlistentry${1}><term>!g;
+ s!</dt\b([^<>]*)>!</term>!g;
+ s!<dd\b([^<>]*)><!<listitem${1}><!g;
+ s!></dd\b([^<>]*)>!></listitem></varlistentry>!g;
+ s!<dd\b([^<>]*)>!<listitem${1}><para>!g;
+ s!</dd\b([^<>]*)>!</para></listitem></varlistentry>!g;
+ s!<table[^<>]*><tr><td>(<table[^<>]*>)!$1!;
+ s!(</table>)</td></tr></table>!$1!;
+ s!<table\b([^<>]*)>!<informaltable${1}><tgroup cols=\"2\"><tbody>!g;
+ s!</table\b([^<>]*)>!</tbody></tgroup></informaltable>!g;
+ s!(</?)tr(\s[^<>]*)?>!${1}row${2}>!g;
+ s!(</?)td(\s[^<>]*)?>!${1}entry${2}>!g;
+ s!(<informaltable[^<>]*\swidth=\"100\%\")!$1 pgwide=\"1\"!g;
+ s!(<tgroup[<>]*\scols=\"2\">)(<tbody>)
+ !$1<colspec colwidth=\"1*\" /><colspec colwidth=\"1*\" />$2!gx;
+ s!(<entry[^<>]*\s)width=(\"\d*\%*\")!${1}remap=${2}!g;
+ s!<nobr>([\'\`]*)<tt>!<cmdsynopsis><command>$1!g;
+ s!</tt>([\'\`]*)</nobr>!$1</command></cmdsynopsis>!g;
+ s!<nobr><(tt|code)>([\`\"\'])!<cmdsynopsis><command>$2!g;
+ s!<(tt|code)><nobr>([\`\"\'])!<cmdsynopsis><command>$2!g;
+ s!([\`\"\'])</(tt|code)></nobr>!$1</command></cmdsynopsis>!g;
+ s!([\`\"\'])</nobr></(tt|code)>!$1</command></cmdsynopsis>!g;
+ s!(</?)tt>!${1}constant>!g;
+ s!(</?)code>!${1}literal>!g;
+ s!<br>!<br />!g;
+ s!<br */>!<screen role=\"linebreak\">\n</screen>!g;
+ $text .= $_;
+ }
+ open F, ">$F" or die "could not write $F: $!"; print F $text; close F;
+ echo "'$SOURCEFILE': ",&ls_s($SOURCEFILE)," >> ",&ls_s($F);
+}
+
+sub make_xmlmaster
+{
+ $SOURCEFILE= &xml_sourcefile($F);
+ my $X=$SOURCEFILE;
+ my $article="section"; # book? chapter?
+ my $text = "";
+ $text .= '<!DOCTYPE '.$article.
+ ' PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"'.$n;
+ $text .= ' "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">'
+ .$n;
+ for my $stylesheet (@{$XMLSTYLESHEETS{$X}}) {
+ $text .= "<?xml-stylesheet type=\"text/css\" href=\"$stylesheet\" ?>"
+ .$n;
+ }
+ # $text .= "<section><sectioninfo><date/><authorblurb/></sectioninfo>...";
+ $text .= "<section><title>Documentation</title>$n";
+ for (make_xmlsitemap()) {
+ $text .= $_;
+ }
+ $text .= "</section>$n";
+ open F, ">$F" or die "could not write $F: $!"; print F $text; close F;
+ echo "'$SOURCEFILE': ",&ls_s($SOURCEFILE)," >*> ",&ls_s($F);
+}
+
+# ==========================================================================
+#
+# During processing we will create a series of intermediate files that
+# store relations. They all have the same format being
+# =relationtype=key value
+# where key is usually s filename or an anchor. For mere convenience
+# we assume that the source html text does not have lines that start
+# off with =xxxx= (btw, ye remember perl section notation...). Of course
+# any other format would be usuable as well.
+#
+
+# we scan the SITEFILE for href references to be converted
+# - in the new variant we use a ".gets.tmp" sed script that SECTS
+# marks all interesting lines so they can be checked later
+# with an sed anchor of sect="[$NN]" (or sect="[$AZ]")
+my $S="\\&nbsp\\;";
+# S="[&]nbsp[;]"
+
+# HR and EM style markups must exist in input - BR sometimes left out
+# these routines in(ter)ject hardspace before, between, after markups
+# note that "<br>" is sometimes used with HR - it must exist in input
+sub echo_HR_EM_PP
+{
+ my ($U,$V,$W,$X,$Z) = @_;
+ my @list = (
+ "s%^($U$V$W*<a) (href=)%\$1 $X \$2%;",
+ "s%^(<>$U$V$W*<a) (href=)%\$1 $X \$2%;",
+ "s%^($S$U$V$W*<a) (href=)%\$1 $X \$2%;",
+ "s%^($U<>$V$W*<a) (href=)%\$1 $X \$2%;",
+ "s%^($U$S$V$W*<a) (href=)%\$1 $X \$2%;",
+ "s%^($U$V<>$W*<a) (href=)%\$1 $X \$2%;",
+ "s%^($U$V$S$W*<a) (href=)%\$1 $X \$2%;" );
+ return @list;
+}
+
+sub echo_br_EM_PP
+{
+ my ($U,$V,$W,$X,$Z) = @_;
+ my @list = &echo_HR_EM_PP ("$U", "$V", "$W", "$X");
+ my @listt = (
+ "s%^($V$W*<a) (href=)%\$1 $X \$2%;",
+ "s%^(<>$V$W*<a) (href=)%\$1 $X \$2%;",
+ "s%^($S$V$W*<a) (href=)%\$1 $X \$2%;",
+ "s%^($V<>$W*<a) (href=)%\$1 $X \$2%;",
+ "s%^($V$S$W*<a) (href=)%\$1 $X \$2%;",
+ "s%^($V$W*<><a) (href=)%\$1 $X \$2%;",
+ "s%^($V$W*$S<a) (href=)%\$1 $X \$2%;" );
+ push @list, @listt;
+ return @list;
+}
+
+sub echo_HR_PP
+{
+ my ($U,$V,$W,$Z) = @_;
+ my @list = (
+ "s%^($U<a) (href=)%\$1 $W \$2%;",
+ "s%^($U$V*<a) (href=)%\$1 $W \$2%;",
+ "s%^(<>$U$V*<a) (href=)%\$1 $W \$2%;",
+ "s%^($S$U$V*<a) (href=)%\$1 $W \$2%;",
+ "s%^($U<>$V*<a) (href=)%\$1 $W \$2%;",
+ "s%^($U$S$V*<a) (href=)%\$1 $W \$2%;" );
+ return @list;
+}
+sub echo_br_PP
+{
+ my ($U,$V,$W,$Z) = @_;
+ my @list = &echo_HR_PP ("$U", "$V", "$W");
+ my @listt = (
+ "s%^($V*<a) (href=)%\$1 $W \$2%;",
+ "s%^(<>$V*<a) (href=)%\$1 $W \$2%;",
+ "s%^($S$V*<a) (href=)%\$1 $W \$2%;" );
+ push @list, @listt;
+ return @list;
+}
+sub echo_sp_PP
+{
+ my ($U,$V,$Z) = @_;
+ my @list = (
+ "s%^(<>$U*<a) (href=)%\$1 $V \$2%;",
+ "s%^($S$U*<a) (href=)%\$1 $V \$2%;",
+ "s%^(<><>$U*<a) (href=)%\$1 $V \$2%;",
+ "s%^($S$S$U*<a) (href=)%\$1 $V \$2%;",
+ "s%^(<>$U<>*<a) (href=)%\$1 $V \$2%;",
+ "s%^($S$U$S*<a) (href=)%\$1 $V \$2%;",
+ "s%^($U<><>*<a) (href=)%\$1 $V \$2%;",
+ "s%^($U$S$S*<a) (href=)%\$1 $V \$2%;",
+ "s%^($U<>*<a) (href=)%\$1 $V \$2%;",
+ "s%^($U$S*<a) (href=)%\$1 $V \$2%;" );
+ return @list;
+}
+sub echo_sp_SP
+{
+ my ($U,$V,$Z) = @_;
+ my @list = (
+ "s%^($U<a) (href=)%\$1 $V \$2%;",
+ "s%^(<>$U<a) (href=)%\$1 $V \$2%;",
+ "s%^($S$U<a) (href=)%\$1 $V \$2%;",
+ "s%^(<><>$U<a) (href=)%\$1 $V \$2%;",
+ "s%^($S$S$U<a) (href=)%\$1 $V \$2%;",
+ "s%^(<>$U<><a) (href=)%\$1 $V \$2%;",
+ "s%^($S$U$S<a) (href=)%\$1 $V \$2%;",
+ "s%^($U<><><a) (href=)%\$1 $V \$2%;",
+ "s%^($U$S$S<a) (href=)%\$1 $V \$2%;",
+ "s%^($U<><a) (href=)%\$1 $V \$2%;",
+ "s%^($U$S<a) (href=)%\$1 $V \$2%;" );
+ return @list;
+}
+sub echo_sp_sp
+{
+ my ($U,$V,$Z) = @_;
+ my @list = (
+ "s%^($U<a) (name=)%\$1 $V \$2%;",
+ "s%^(<>$U<a) (name=)%\$1 $V \$2%;",
+ "s%^($S$U<a) (name=)%\$1 $V \$2%;",
+ "s%^(<><>$U<a) (name=)%\$1 $V \$2%;",
+ "s%^($S$S$U<a) (name=)%\$1 $V \$2%;",
+ "s%^(<>$U<><a) (name=)%\$1 $V \$2%;",
+ "s%^($S$U$S<a) (name=)%\$1 $V \$2%;",
+ "s%^($U<><><a) (name=)%\$1 $V \$2%;",
+ "s%^($U$S$S<a) (name=)%\$1 $V \$2%;",
+ "s%^($U<><a) (name=)%\$1 $V \$2%;",
+ "s%^($U$S<a) (name=)%\$1 $V \$2%;" );
+ return @list;
+}
+
+sub make_sitemap_init
+{
+ # build a list of detectors that map site.htm entries to a section table
+ # note that the resulting .gets.tmp / .puts.tmp are real sed-script
+ my $h1="[-|[]";
+ my $b1="[*=]";
+ my $b2="[-|[]";
+ my $b3="[\\/:]";
+ my $q3="[\\/:,[]";
+ @MK_GETS = ();
+ push @MK_GETS, &echo_HR_PP ("<hr>", "$h1", "sect=\\\"1\\\"");
+ push @MK_GETS, &echo_HR_EM_PP("<hr>","<em>", "$h1", "sect=\\\"1\\\"");
+ push @MK_GETS, &echo_HR_EM_PP("<hr>","<strong>", "$h1", "sect=\\\"1\\\"");
+ push @MK_GETS, &echo_HR_PP ("<br>", , "$b1$b1", "sect=\\\"1\\\"");
+ push @MK_GETS, &echo_HR_PP ("<br>", , "$b2$b2", "sect=\\\"2\\\"");
+ push @MK_GETS, &echo_HR_PP ("<br>", , "$b3$b3", "sect=\\\"3\\\"");
+ push @MK_GETS, &echo_br_PP ("<br>", , "$b2$b2", "sect=\\\"2\\\"");
+ push @MK_GETS, &echo_br_PP ("<br>", , "$b3$b3", "sect=\\\"3\\\"");
+ push @MK_GETS, &echo_br_EM_PP("<br>","<small>" , "$q3" , "sect=\\\"3\\\"");
+ push @MK_GETS, &echo_br_EM_PP("<br>","<em>" , "$q3" , "sect=\\\"3\\\"");
+ push @MK_GETS, &echo_br_EM_PP("<br>","<u>" , "$q3" , "sect=\\\"3\\\"");
+ push @MK_GETS, &echo_HR_PP ("<br>", , "$q3" , "sect=\\\"3\\\"");
+ push @MK_GETS, &echo_br_PP ("<u>", , "$b2" , "sect=\\\"2\\\"");
+ push @MK_GETS, &echo_sp_PP ( "$q3" , "sect=\\\"3\\\"");
+ push @MK_GETS, &echo_sp_SP ( "" , "sect=\\\"2\\\"");
+ push @MK_GETS, &echo_sp_sp ( "$q3" , "sect=\\\"9\\\"");
+ push @MK_GETS, &echo_sp_sp ("<br>", "sect=\\\"9\\\"");
+ @MK_PUTS = map { my $x=$_; $x =~ s/(>)(\[)/$1 *$2/; $x } @MK_GETS;
+ # the .puts.tmp variant is used to <b><a href=..></b> some hrefs which
+ # shall not be used otherwise for being generated - this is nice for
+ # some quicklinks somewhere. The difference: a whitspace "<hr> <a...>"
+}
+
+my $_uses_= sub{"<$Q='use$1'>$2 $3<$QX>" };
+my $_name_= sub{"<$Q='use$1'>name:$2 $3<$QX>" };
+
+sub make_sitemap_list
+{
+ my ($V,$Z) = @_; $V = $SITEFILE if not $V;
+ # scan sitefile for references pages - store as "=use+=href+ anchortext"
+ for (source($V)) {
+ my $x = $_;
+ local $_ = &eval_MK_LIST("sitemap_list", $x, @MK_GETS);
+ /<a sect=\"[$NN]\"/ or next;
+ chomp;
+ s{.*<a sect=\"([^\"]*)\" href=\"([^\"]*)\"[^<>]*>(.*)</a>.*}{&$_uses_}e;
+ s{.*<a sect=\"([^\"]*)\" name=\"([^\"]*)\"[^<>]*>(.*)</a>.*}{&$_name_}e;
+ s{.*<a sect=\"([^\"]*)\" name=\"([^\"]*)\"[^<>]*>(.*)}{&$_name_}e;
+ /^<$Q=/ or next;
+ /^<!/ and next;
+ push @MK_DATA, $_;
+ }
+}
+
+my $_Uses_= sub{"<$Q='Use$1'>$2 $3<$QX>" };
+my $_Name_= sub{"<$Q='Use$1'>name:$2 $3<$QX>" };
+
+sub make_subsitemap_list # file-to-scan
+{
+ my ($V,$W,$Z) = @_; $V = $SITEFILE if not $V;
+ # scan sitefile for references pages - store as "=use+=href+ anchortext"
+ for (source($V)) {
+ my $x = $_;
+ local $_ = &eval_MK_LIST("subsitemap_list", $x, @MK_GETS);
+ /<a sect=\"[$NN]\"/ or next;
+ chomp;
+ s{.*<a sect=\"([^\"]*)\" href=\"([^\"]*)\"[^<>]*>(.*)</a>.*}{&$_Uses_}e;
+ s{.*<a sect=\"([^\"]*)\" name=\"([^\"]*)\"[^<>]*>(.*)</a>.*}{&$_Name_}e;
+ s{.*<a sect=\"([^\"]*)\" name=\"([^\"]*)\"[^<>]*>(.*)}{&$_Name_}e;
+ /^<$Q=/ or next;
+ /^<!/ and next;
+ s|>([^:./][^:./]*[./])|>$W$1|;
+ push @MK_DATA, $_;
+ }
+}
+
+sub make_sitemap_sect
+{
+ # scan used pages and store prime section group relation =sect= and =node=
+ # (A) each "use1" creates "=sect=href+ href1" for all following non-"use1"
+ # (B) each "use1" creates "=node=href2 href1" for all following "use2"
+ my $sect = "";
+ for (grep {/<$Q='[u]se.'>/} @MK_DATA) {
+ if (/<$Q='[u]se1'>([^ ]*) .*/) { $sect = $1; }
+ my $x = $_; # chomp $x;
+ $x =~ s|<$Q='[u]se.'>([^ ]*) .*|<$Q='sect'>$1 $sect<$QX>|;
+ push @MK_DATA, $x;
+ }
+ for (grep {/<$Q='[u]se.'>/} @MK_DATA) {
+ if (/<$Q='[u]se1'>([^ ]*) .*/) { $sect = $1; }
+ /<$Q='[u]se[13456789]'>/ and next;
+ my $x = $_; # chomp $x;
+ $x =~ s|<$Q='[u]se.'>([^ ]*) .*|<$Q='node'>$1 $sect<$QX>|;
+ push @MK_DATA, $x;
+ }
+}
+
+sub make_sitemap_page
+{
+ # scan used pages and store secondary group relation =page= and =node=
+ # the parenting =node= for use3 is usually a use2 (or use1 if none there)
+ my $sect = "";
+ for (grep {/<$Q='[u]se.'>/} @MK_DATA) {
+ if (/<$Q='[u]se1'>([^ ]*) .*/) { $sect = $1; }
+ if (/<$Q='[u]se2'>([^ ]*) .*/) { $sect = $1; }
+ /<$Q='[u]se[1]'>/ and next;
+ my $x = $_;
+ $x =~ s|<$Q='[u]se.'>([^ ]*) .*|<$Q='page'>$1<$QX>|; chomp $x;
+ push @MK_DATA, "$x $sect";
+ }
+ for (grep {/<$Q='[u]se.'>/} @MK_DATA) {
+ if (/<$Q='[u]se1'>([^ ]*) .*/) { $sect = $1; }
+ if (/<$Q='[u]se2'>([^ ]*) .*/) { $sect = $1; }
+ /<$Q='[u]se[12456789]'>/ and next;
+ my $x = $_;
+ $x =~ s/<$Q='[u]se.'>([^ ]*) .*/<$Q='node'>$1<$QX>/; chomp $x;
+ push @MK_DATA, "$x $sect"; ## print "(",$_,")","$x $sect", $n;
+ }
+ # and for the root sections we register ".." as the parenting group
+ for (grep {/<$Q='[u]se1'>/} @MK_DATA) {
+ my $x = $_; $x = trimm($x);
+ $x =~ s/<$Q='[u]se.'>([^ ]*) .*/<$Q='node'>$1 ..<$QX>/; chomp $x;
+ push @MK_DATA, $x;
+ }
+}
+sub echo_site_filelist
+{
+ my @OUT = ();
+ for (grep {/<$Q='[u]se.'>/} @MK_DATA) {
+ my $x = $_; $x =~ s/<$Q='[u]se.'>//; $x =~ s/ .*[\n]*//;
+ push @OUT, $x;
+ }
+ return @OUT;
+}
+
+# ==========================================================================
+# originally this was a one-pass compiler but the more information
+# we were scanning out the more slower the system ran - since we
+# were rescanning files for things like section information. Now
+# we scan the files first for global information.
+# 1.PASS
+
+sub scan_sitefile # $F
+{
+ $SOURCEFILE=&html_sourcefile($F);
+ hint "'$SOURCEFILE': scanning -> sitefile";
+ if ($SOURCEFILE ne $F) {
+ dx_init "$F";
+ dx_text ("today", &timetoday());
+ my $short=$F;
+ $short =~ s:.*/::; $short =~ s:[.].*::; # basename for all exts
+ $short .=" ~";
+ DC_meta ("title", "$short");
+ DC_meta ("date.available", &timetoday());
+ DC_meta ("subject", "sitemap");
+ DC_meta ("DCMIType", "Collection");
+ DC_VARS_Of ($SOURCEFILE) ; HTTP_VARS_Of ($SOURCEFILE) ;
+ DC_modified ($SOURCEFILE) ; DC_date ($SOURCEFILE);
+ DC_section ($F);
+ DX_text ("date.formatted", &timetoday());
+ if ($printerfriendly) {
+ DX_text ("printerfriendly", fast_html_printerfile($F)); }
+ if ($ENV{USER}) { DC_publisher ($ENV{USER}); }
+ echo "'$SOURCEFILE': $short (sitemap)";
+ site_map_list_title ($F, "$short");
+ site_map_long_title ($F, "generated sitemap index");
+ site_map_list_date ($F, &timetoday());
+ }
+}
+
+sub scan_htmlfile # "$F"
+{
+ my ($FF,$Z) = @_;
+ $SOURCEFILE=&html_sourcefile($F); # SCAN :
+ hint "'$SOURCEFILE': scanning -> $F"; # HTML :
+ if ($SOURCEFILE ne $F) {
+ if ( -f $SOURCEFILE) {
+ dx_init "$F";
+ dx_text ("today", &timetoday());
+ dx_text ("todays", &timetodays());
+ DC_VARS_Of ($SOURCEFILE); HTTP_VARS_Of ($SOURCEFILE);
+ DC_title ($SOURCEFILE);
+ DC_isFormatOf ($SOURCEFILE);
+ DC_modified ($SOURCEFILE);
+ DC_date ($SOURCEFILE); DC_date ($SITEFILE);
+ DC_section ($F); DC_selected ($F); DX_alternative ($SOURCEFILE);
+ if ($ENV{USER}) { DC_publisher ($ENV{USER}); }
+ DX_text ("date.formatted", &timetoday());
+ if ($printerfriendly) {
+ DX_text ("printerfriendly", fast_html_printerfile($F)); }
+ my $sectn=&info_get_entry("DC.relation.section");
+ my $short=&info_get_entry("DC.title.selected");
+ &site_map_list_title ($F, "$short");
+ &info_map_list_title ($F, "$short");
+ my $title=&info_get_entry("DC.title");
+ &site_map_long_title ($F, "$title");
+ &info_map_long_title ($F, "$title");
+ my $edate=&info_get_entry("DC.date");
+ my $issue=&info_get_entry("issue");
+ &site_map_list_date ($F, "$edate");
+ &info_map_list_date ($F, "$edate");
+ css_scan();
+ echo "'$SOURCEFILE': '$title' ('$short') @ '$issue' ('$sectn')";
+ }else {
+ echo "'$SOURCEFILE': does not exist";
+ site_map_list_title ($F, "$F");
+ site_map_long_title ($F, "$F (no source)");
+ }
+ } else {
+ echo "<$F> - skipped - ($SOURCEFILE)";
+ }
+}
+
+sub scan_subsitemap_long
+{
+ my ($V,$W,$ZZZ) = @_;
+ for (source($V)) {
+ my $x = $_;
+ if ($x =~ m|<a href="([^\"]*)">.*<small style="date">([^<>]*)</small>|) {
+ &site_map_list_date($W.$1,$2);
+ }
+ if ($x =~ m|<a href="([^\"]*)">.*<!--long-->([^<>]*)<!--/long-->|) {
+ &site_map_long_title($W.$1,$2);
+ }
+ }
+}
+
+sub scan_namespec
+{
+ # nothing so far
+ # my ($F,$ZZZ) = @_;
+ if ($F =~ /^name:sitemap:/) {
+ my $short=$F;
+ $short =~ s:.*/::; $short =~ s:[.].*::; # basename for all exts
+ $short =~ s/name:sitemap://;
+ $short .=" ~";
+ site_map_list_title ($F, "$short");
+ site_map_long_title ($F, "external sitemap index");
+ site_map_list_date ($F, &timetoday());
+ echo "'$F' external sitemap index";
+ }
+ elsif ($F =~ /^name:(.*\.html*)$/) { # assuming it is a subsitefile
+ my $FF=$1;
+ my $FFF=$FF; $FFF =~ s:/[^/]*$:/:; # dirname
+ $FFF="" if $FFF !~ m:/:;
+ make_subsitemap_list($FF, $FFF);
+ scan_subsitemap_long($FF, $FFF);
+ }
+}
+sub scan_httpspec
+{
+ # nothing so far
+}
+
+sub skip_namespec
+{
+ # nothing so far
+}
+sub skip_httpspec
+{
+ # nothing so far
+}
+
+# ==========================================================================
+# and now generate the output pages
+# 2.PASS
+
+sub head_sed_sitemap # $filename $section
+{
+ my ($U,$V,$Z) = @_;
+ my $FF=&sed_piped_key($U);
+ my $SECTION=&sed_slash_key($V);
+ my $SECTS="sect=\"[$NN$AZ]\"" ;
+ my $SECTN="sect=\"[$NN]\""; # lines with hrefs
+ my @OUT = ();
+ push @OUT, "s|(<a $SECTS href=\\\"$FF\\\">.*</a>)|<b>\$1</b>|;";
+ push @OUT, "/ href=\\\"$SECTION\\\"/ "
+ ."and s|^<td class=\\\"[^\\\"]*\\\"|<td |;" if $sectiontab ne "no";
+ return @OUT;
+}
+
+sub head_sed_listsection # $filename $section
+{
+ # traditional.... the sitefile is the full navigation bar
+ my ($U,$V,$Z) = @_;
+ my $FF=&sed_piped_key($U);
+ my $SECTION=&sed_slash_key($V);
+ my $SECTS="sect=\"[$NN$AZ]\"" ;
+ my $SECTN="sect=\"[$NN]\""; # lines with hrefs
+ my @OUT = ();
+ push @OUT, "s|(<a $SECTS href=\\\"$FF\\\">.*</a>)|<b>\$1</b>|;";
+ push @OUT, "/ href=\\\"$SECTION\\\"/ "
+ ."and s|^<td class=\\\"[^\\\"]*\\\"|<td |;" if $sectiontab ne "no";
+ return @OUT;
+}
+
+sub head_sed_multisection # $filename $section
+{
+ # sitefile navigation bar is split into sections
+ my ($U,$V,$Z) = @_;
+ my $FF=&sed_piped_key($U);
+ my $SECTION=&sed_slash_key($V);
+ my $SECTS="sect=\"[$NN$AZ]\"" ;
+ my $SECTN="sect=\"[$NN]\""; # lines with hrefs
+ my @OUT = ();
+ # grep all pages with a =sect= relation to current $SECTION and
+ # build foreach an sed line "s|<a $SECTS (href=$F)>|<a sect="X" $1>|"
+ # after that all the (still) numeric SECTNs are deactivated / killed.
+ for my $section ($SECTION, $headsection, $tailsection) {
+ next if $section eq "no";
+ for (grep {/^<$Q='sect'>[^ ]* $section/} @MK_DATA) {
+ my $x = $_;
+ $x =~ s|<$Q='sect'>||; $x =~ s| .*||; # $filename
+ $x =~ s/(.*)/s|<a $SECTS \(href=\\\"$1\\\"\)|<a sect=\\\"X\\\" \$1|/;
+ push @OUT, $x.";";
+ }
+ for (grep {/^<$Q='sect'>name:[^ ]* $section/} @MK_DATA) {
+ my $x = $_;
+ $x =~ s|<$Q='sect'>name:||; $x =~ s| .*||; # $filename
+ $x =~ s/(.*)/s|<a $SECTS \(name=\\\"$1\\\"\)|<a sect=\\\"X\\\" \$1|/;
+ push @OUT, $x.";";
+ }
+ }
+ push @OUT, "s|.*<a ($SECTN href=[^<>]*)>.*|<!-- \$1 -->|;";
+ push @OUT, "s|.*<a ($SECTN name=[^<>]*)>.*|<!-- \$1 -->|;";
+ push @OUT, "s|(<a $SECTS href=\\\"$FF\\\">.*</a>)|<b>\$1</b>|;";
+ push @OUT, "/ href=\\\"$SECTION\\\"/ "
+ ."and s|^<td class=\\\"[^\\\"]*\\\"|<td |;" if $sectiontab ne "no";
+ return @OUT;
+}
+
+sub make_sitefile # "$F"
+{
+ $SOURCEFILE=&html_sourcefile($F);
+ if ($SOURCEFILE ne $F) {
+ if (-f $SOURCEFILE) {
+ # remember that in this case "${SITEFILE}l" = "$F" = "${SOURCEFILE}l"
+ @MK_VARS = &info2vars_sed(); # have <!--title--> vars substituted
+ @MK_META = &info2meta_sed(); # add <meta name="DC.title"> values
+ my @F_HEAD = (); my @F_FOOT = ();
+ push @F_HEAD, @MK_PUTS;
+ push @F_HEAD, &head_sed_sitemap ($F, &info_get_entry_section());
+ push @F_HEAD, "/<head>/ and $sed_add join(\"\\n\", \@MK_META);";
+ push @F_HEAD, @MK_VARS; push @F_HEAD, @MK_TAGS;
+ push @F_HEAD, "/<\\/body>/ and next;"; #cut lastline
+ if ( $sitemaplayout eq "multi") {
+ push @F_FOOT, &make_multisitemap(); # here we use ~foot~ to
+ } else {
+ push @F_FOOT, &make_listsitemap(); # hold the main text
+ }
+
+ my $html = ""; #
+ $html .= &eval_MK_FILE("SITE", $SITEFILE, @F_HEAD);
+ $html .= join("", @F_FOOT);
+ for (source($SITEFILE)) {
+ /<\/body>/ or next;
+ $html .= &eval_MK_LIST("sitefile", $_, @MK_VARS);
+ }
+ open F, ">$F"; print F $html; close F;
+ echo "'$SOURCEFILE': ",ls_s($SOURCEFILE)," >-> ",ls_s($F);
+ savesource("$F.~head~", \@F_HEAD);
+ savesource("$F.~foot~", \@F_FOOT);
+} else {
+ echo "'$SOURCEFILE': does not exist";
+} }
+}
+
+sub make_htmlfile # "$F"
+{
+ $SOURCEFILE=&html_sourcefile($F); # 2.PASS
+ if ("$SOURCEFILE" ne "$F") {
+ if (-f "$SOURCEFILE") {
+ if (grep {/<meta name="formatter"/} source($SOURCEFILE)) {
+ echo "'$SOURCEFILE': SKIP, this sourcefile looks like a formatted file";
+ echo "'$SOURCEFILE': (may be a sourcefile in place of a targetfile?)";
+ return; }
+ @MK_VARS = &info2vars_sed(); # have <!--title--> vars substituted
+ @MK_META = &info2meta_sed(); # add <meta name="DC.title"> values
+ @MK_SPAN = &tags2span_sed(); # extern text/css -> intern css classes
+ push @MK_META, &tags2meta_sed(); # extern text/css -> intern css classes
+ my @F_HEAD = (); my @F_BODY = (); my $F_FOOT = "";
+ push @F_HEAD, @MK_PUTS;
+ if ( $sectionlayout eq "multi") {
+ push @F_HEAD, &head_sed_multisection ($F, &info_get_entry_section());
+ } else {
+ push @F_HEAD, &head_sed_listsection ($F, &info_get_entry_section());
+ }
+ push @F_HEAD, @MK_VARS; push @F_HEAD, @MK_TAGS; push @F_HEAD, @MK_SPAN;
+ push @F_HEAD, "/<\\/body>/ and next;"; #cut lastline
+ push @F_HEAD, "/<head>/ and $sed_add join(\"\\n\",\@MK_META);"; #add metatags
+ push @F_BODY, "/<title>/ and next;"; #not that line
+ push @F_BODY, @MK_VARS; push @F_BODY, @MK_TAGS; push @F_BODY, @MK_SPAN;
+ push @F_BODY, &bodymaker_for_sectioninfo(); #if sectioninfo
+ push @F_BODY, &info2body_sed(); #cut early
+ push @F_HEAD, &info2head_sed();
+ push @F_HEAD, &make_back_path($F);
+ if ($emailfooter ne "no") {
+ $F_FOOT = &body_for_emailfooter();
+ }
+ my $html = "";
+ $html .= eval_MK_FILE("head", $SITEFILE, @F_HEAD);
+ $html .= eval_MK_FILE("body", $SOURCEFILE, @F_BODY);
+ $html .= $F_FOOT;
+ for (source($SITEFILE)) {
+ /<\/body>/ or next;
+ $_ = &eval_MK_LIST("htmlfile", $_, @MK_VARS);
+ $html .= $_;
+ }
+ open F, ">$F" or die "could not write $F: $!"; print F $html; close F;
+ echo "'$SOURCEFILE': ",&ls_s($SOURCEFILE)," -> ",&ls_s($F);
+ savesource("$F.~head~", \@F_HEAD);
+ savesource("$F.~body~", \@F_BODY);
+ } else {
+ echo "'$SOURCEFILE': does not exist";
+ }} else {
+ echo "<$F> - skipped";
+ }
+}
+
+my $PRINTSITEFILE;
+sub make_printerfriendly # "$F"
+{ # PRINTER
+ my $printsitefile="0"; # FRIENDLY
+ my $BODY_TXT; my $BODY_SED;
+ my $P=&html_printerfile ($F);
+ my @P_HEAD = (); my @P_BODY = ();
+ if ("$F" =~ /^(${SITEFILE}|${SITEFILE}l)$/) {
+ $printsitefile=">=>" ; $BODY_TXT="$F.~foot~" ;
+ } elsif ("$F" =~ /^(.*[.]html)$/) {
+ $printsitefile="=>" ; $BODY_TXT="$SOURCEFILE";
+ }
+ if (grep {/<meta name="formatter"/} source($BODY_TXT)) { return; }
+ if ($printsitefile ne "0" and -f $SOURCEFILE) { my $x;
+ @MK_FAST = &make_printerfile_fast (\@FILELIST);
+ push @P_HEAD, @MK_VARS; push @P_HEAD, @MK_TAGS; push @P_HEAD, @MK_FAST;
+ @MK_METT = map { $x = $_; $x =~
+ /DC.relation.isFormatOf/ and $x =~ s|content=\"[^\"]*\"|content=\"$F\"| ;
+ $x } @MK_META;
+ push @P_HEAD, "/<head>/ and $sed_add join(\"\\n\", \@MK_METT);";
+ push @P_HEAD, "/<\\/body>/ and next;";
+ push @P_HEAD, &select_in_printsitefile ("$F");
+ my $_ext_=&print_extension($printerfriendly);
+# my $line_=&sed_slash_key($printsitefile_img_2);
+ push @P_HEAD, "/\\|\\|topics:/"
+ ." and s| href=\\\"\\#\\.\\\"| href=\\\"$F\\\"|;";
+ push @P_HEAD, "/\\|\\|\\|pages:/"
+ ." and s| href=\\\"\\#\\.\\\"| href=\\\"$F\\\"|;";
+ push @P_HEAD, &make_back_path("$F");
+ push @P_BODY, @MK_VARS; push @P_BODY, @MK_TAGS; push @P_BODY, @MK_FAST;
+ push @P_BODY, &make_back_path("$F");
+ my $html = "";
+ $html .= eval_MK_FILE("p_head", $PRINTSITEFILE, @P_HEAD);
+ $html .= eval_MK_FILE("p_body", $BODY_TXT, @P_BODY);
+ for (source($PRINTSITEFILE)) {
+ /<\/body>/ or next;
+ $_ = &eval_MK_LIST("printerfriendly", $_, @MK_VARS);
+ $html .= $_;
+ }
+ open P, ">$P" or die "could not write $P: $!"; print P $html; close P;
+ echo "'$SOURCEFILE': ",ls_s($SOURCEFILE)," $printsitefile ",ls_s($P);
+ }
+}
+
+
+# ========================================================================
+# ========================================================================
+# ========================================================================
+# ========================================================================
+# #### 0. INIT
+$F=$SITEFILE;
+&make_sitemap_init();
+&make_sitemap_list($SITEFILE);
+&make_sitemap_sect();
+&make_sitemap_page();
+savelist(\@MK_DATA, "DATA");
+
+@FILELIST=&echo_site_filelist();
+if ($o{filelist} or $o{list} eq "file" or $o{list} eq "files") {
+ for (@FILELIST) { echo $_; } exit; # --filelist
+}
+if ($o{files}) { @FILELIST=split(/ /, $o{files}); } # --files
+if ($#FILELIST < 0) { warns "nothing to do (no --filelist)"; }
+if ($#FILELIST == 0 and
+ $FILELIST[0] eq $SITEFILE) { warns "only '$SITEFILE'?!"; }
+
+for (@FILELIST) { #### 1. PASS
+ $F = $_;
+ if (/^(name:.*)$/) {
+ &scan_namespec ("$F");
+ } elsif (/^(http:|https:|ftp:|mailto:|telnet:|news:|gopher:|wais:)/) {
+ &scan_httpspec ("$F");
+ } elsif (/^(${SITEFILE}|${SITEFILE}l)$/) {
+ &scan_sitefile ("$F") ;; # ........... SCAN SITE
+ } elsif (/^(.*\@.*\.de)$/) {
+ echo "!! -> '$F' (skipping malformed mailto:-link)";
+ } elsif (/^(\.\.\/.*)$/) {
+ echo "!! -> '$F' (skipping topdir build)";
+# */*.html)
+# make_back_path # try for later subdir build
+# echo "!! -> '$F' (skipping subdir build)"
+# ;;
+# */*/*/|*/*/|*/|*/index.htm|*/index.html)
+# echo "!! -> '$F' (skipping subdir index.html)"
+# ;;
+ } elsif (/^(.*\.html)$/) {
+ &scan_htmlfile ("$F"); # ........... SCAN HTML
+ if ($o{xml}) {
+ $F =~ s/\.html$/.xml/;
+ &scan_xmlfile ("$F");
+ }
+ } elsif (/^(.*\.xml)$/) {
+ &scan_xmlfile ("$F") ;;
+ } elsif (/^(.*\/)$/) {
+ echo "'$F' : directory - skipped";
+ &site_map_list_title ("$F", &sed_slash_key($F));
+ &site_map_long_title ("$F", "(directory)");
+ } else {
+ echo "?? -> '$F'";
+ }
+}
+
+if ($printerfriendly) { # .......... PRINT VERSION
+ my $_ext_=esc(&print_extension($printerfriendly));
+ $PRINTSITEFILE=$SITEFILE; $PRINTSITEFILE =~ s/(\.\w*)$/$_ext_$1/;
+ $F=$PRINTSITEFILE;
+ my @TEXT = &make_printsitefile();
+ echo "NOTE: going to create printer-friendly sitefile '$PRINTSITEFILE'"
+ ." $F._$i";
+ savelist(\@TEXT, "TEXT");
+ my @LINES = map { chomp; $_."$n" } @TEXT;
+ savesource($PRINTSITEFILE, \@LINES);
+ if (1) {
+ if (open PRINTSITEFILE, ">$PRINTSITEFILE") {
+ print PRINTSITEFILE join("", @LINES); close PRINTSITEFILE;
+ }
+ }
+}
+
+for (@FILELIST) { #### 2. PASS
+ $F = $_;
+ if (/^(name:.*)$/) {
+ &skip_namespec ("$F") ;;
+ } elsif (/^(http:|https:|ftp:|mailto:|telnet:|news:|gopher:|wais:)/) {
+ &skip_httpspec ("$F") ;;
+ } elsif (/^(${SITEFILE}|${SITEFILE}l)$/) {
+ &make_sitefile ("$F") ;; # ........ SITE FILE
+ &make_printerfriendly ("$F") if ($printerfriendly);
+ if ($o{xml}) {
+ $F =~ s/\.html$/.xml/;
+ &make_xmlmaster ("$F");
+ }
+ } elsif (/^(.*\@.*\.de)$/) {
+ echo "!! -> '$F' (skipping malformed mailto:-link)";
+ } elsif (/^(\.\.\/.*)$/) {
+ echo "!! -> '$F' (skipping topdir build)";
+# */*.html)
+# echo "!! -> '$F' (skipping subdir build)"
+# ;;
+# */*/*/|*/*/|*/|*/index.htm|*/index.html)
+# echo "!! -> '$F' (skipping subdir index.html)"
+# ;;
+ } elsif (/^(.*\.html)$/) {
+ &make_htmlfile ("$F") ; # .................. HTML FILES
+ &make_printerfriendly ("$F") if ($printerfriendly);
+ if ($o{xml}) {
+ $F =~ s/\.html$/.xml/;
+ &make_xmlfile ("$F");
+ }
+ } elsif (/^(.*\.xml)$/) {
+ &make_xmlfile ("$F") ;;
+ } elsif (/^(.*\/)$/) {
+ echo "'$F' : directory - skipped";
+ } else {
+ echo "?? -> '$F'";
+ }
+
+# .............. debug ....................
+ if (-d "DEBUG" and -f $F) {
+ my $INP = \@{$DATA{$F}};
+ my $FFFF = $F; $FFFF =~ s,/,:,g;
+ if (open FFFF, ">DEBUG/$FFFF.data.tmp.ht") {
+ for (@{$INP}) { print FFFF $_,$n; } close FFFF;
+ }
+ if (open FFFF, ">DEBUG/$FFFF.tags.tmp.pl") {
+ print FFFF "# /usr/bin/env perl -p",$n;
+ for (@MK_TAGS) { print FFFF $_,$n; } close FFFF;
+ }
+ if (open FFFF, ">DEBUG/$FFFF.vars.tmp.pl") {
+ print FFFF "# /usr/bin/env perl -p",$n;
+ for (@MK_VARS) { print FFFF $_,$n; } close FFFF;
+ }
+ if (open FFFF, ">DEBUG/$FFFF.span.tmp.pl") {
+ print FFFF "# /usr/bin/env perl -p",$n;
+ for (@MK_SPAN) { print FFFF $_,$n; } close FFFF;
+ }
+ if (open FFFF, ">DEBUG/$FFFF.meta.tmp.ht") {
+ for (@MK_META) { print FFFF $_,$n; } close FFFF;
+ }
+ if (open FFFF, ">DEBUG/$FFFF.gets.tmp.ht") {
+ for (@MK_GETS) { print FFFF $_,$n; } close FFFF;
+ }
+ if (open FFFF, ">DEBUG/$FFFF.puts.tmp.ht") {
+ for (@MK_PUTS) { print FFFF $_,$n; } close FFFF;
+ }
+ if (open FFFF, ">DEBUG/$FFFF.fast.tmp.ht") {
+ for (@MK_FAST) { print FFFF $_,$n; } close FFFF;
+ }
+ }
+} # done
+
+## rm ./$MK.*.tmp.* if not $o{keeptmpfiles}
+exit 0
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/mksite.sh b/Build/source/libs/zziplib/zziplib-src/docs/mksite.sh
new file mode 100644
index 00000000000..12af7948d00
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/mksite.sh
@@ -0,0 +1,2355 @@
+#! /bin/sh
+# this is the sh/sed variant of the mksite script. It is largely
+# derived from snippets that I was using to finish doc pages for
+# website publishing. For the mksite project the functionaliy has
+# been expanded of course. Still this one does only use simple unix
+# commands like sed, date, and test. And it still works. :-)=)
+# http://zziplib.sf.net/mksite/
+# THE MKSITE.SH (ZLIB/LIBPNG) LICENSE
+# Copyright (c) 2004 Guido U. Draheim <guidod@gmx.de>
+# 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.
+# $Id: mksite.sh,v 1.5 2006-09-22 00:33:22 guidod Exp $
+
+# Zsh is not Bourne compatible without the following: (seen in autobook)
+if test -n "$ZSH_VERSION"; then
+ emulate sh
+ NULLCMD=:
+fi
+
+# initialize some defaults
+test ".$SITEFILE" = "." && test -f "site.htm" && SITEFILE="site.htm"
+test ".$SITEFILE" = "." && test -f "site.html" && SITEFILE="site.html"
+test ".$SITEFILE" = "." && SITEFILE="site.htm"
+MK="-mksite" # note the "-" at the start
+SED="sed"
+CAT="cat" # "sed -e n" would be okay too
+GREP="grep"
+DATE_NOW="date" # should be available on all posix systems
+DATE_R="date -r" # gnu date has it / solaris date not
+STAT_R="stat" # gnu linux
+LS_L="ls -l" # linux uses one less char than solaris
+
+DATA="~~" # extension for meta data files
+HEAD="~head~" # extension for head sed script
+BODY="~body~" # extension for body sed script
+FOOT="~foot~" # append to body text (non sed)
+
+NULL="/dev/null" # to divert stdout/stderr
+CATNULL="$CAT $NULL" # to create 0-byte files
+SED_LONGSCRIPT="$SED -f"
+
+Q='q class='
+QX='/q'
+LOWER="abcdefghijklmnopqrstuvwxyz"
+UPPER="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+az="$LOWER" # some old sed tools can not
+AZ="$UPPER" # use char-ranges in the
+NN="0123456789" # match expressions so that
+AA="_$NN$AZ$az" # we use their unrolled
+AX="$AA.+-" # definition here
+AP="|" # (pipe symbol in char-range)
+AK="[" # (open range in char-range)
+
+LANG="C" ; LANGUAGE="C" ; LC_COLLATE="C" # these are needed for proper
+export LANG LANGUAGE LC_COLLATE # lowercasing as some collate
+ # treat A-Z to include a-z
+
+HTMLTAGS=" a p h1 h2 h3 h4 h5 h6 dl dd dt ul ol li pre code table tr td th"
+HTMLTAGS=" $HTMLTAGS b u i s q em strong strike cite big small sup sub tt"
+HTMLTAGS=" $HTMLTAGS thead tbody center hr br nobr wbr"
+HTMLTAGS=" $HTMLTAGS span div img adress blockquote"
+HTMLTAGS2=" html head body title meta http-equiv style link"
+
+# ==========================================================================
+if "${SHELL-/bin/sh}" -c 'foo () { exit 0; }; foo' 2>$NULL ; then : ; else
+echo "!! sorry, this shell '$SHELL' does not support shell functions" ; exit 1
+fi
+
+error ()
+{
+ echo "ERROR:" "$@" 1>&2
+}
+
+warn ()
+{
+ echo "WARN:" "$@" 1>&2
+}
+
+note ()
+{
+ echo "NOTE:" "$@" 1>&2
+}
+
+hint=":"
+
+init ()
+{
+ if test -d DEBUG
+ then hint="note"
+ fi
+ if test "$SED" = "sed" ; then
+ if gsed --version 2>$NULL | $GREP "GNU sed" >$NULL ; then
+ SED="gsed"
+ $hint "using 'gsed' as SED"
+ fi
+ fi
+ if $SED --version 2>$NULL | $GREP "GNU sed" >$NULL ; then
+ az="a-z" # but if we have GNU sed
+ AZ="A-Z" # then we assume there are
+ NN="0-9" # char-ranges available
+ AA="_$NN$AZ$az" # that makes the resulting
+ AX="$AA.+-" # script more readable
+ $hint "found GNU sed - good"
+ elif uname -s | $GREP HP-UX >$NULL ; then
+ SED_LONGSCRIPT="sed_longscript" # due to 100 sed lines limit
+ $hint "weird sed - hpux sed has a limit of 100 lines" \
+ "- using sed_longscript mode"
+ fi
+ if echo "TEST" | sed -e "s%[:[]*TEST%OK%" | grep OK 2>&1 > $NULL
+ then :
+ elif echo "TEST" | sed -e "s%[:\\[]*TEST%OK%" | grep OK 2>&1 > $NULL
+ then AK="\\[" ; $hint "AK=\\["
+ else AK="" ; warn "buggy sed - disabled [ in char-ranges / fileref-tests"
+ fi
+ if echo "TEST" | sed -e "s%[:|]*TEST%OK%" | grep OK 2>&1 > $NULL
+ then :
+ elif echo "TEST" | sed -e "s%[:\\|]*TEST%OK%" | grep OK 2>&1 > $NULL
+ then AP="\\[" ; $hint "AP=\\|"
+ else AP="" ; warn "buggy sed - disabled | in char-ranges / fileref-tests"
+ fi
+}
+
+init "NOW!!!"
+
+sed_debug ()
+{
+ $note "sed" "$@" >&2
+ sed "$@"
+}
+
+# ==========================================================================
+# reading options from the command line GETOPT
+opt_variables="files"
+opt_fileseparator="?"
+opt_files=""
+opt_main_file=""
+opt_formatter="$0"
+opt=""
+for arg in "$@" # this variant should allow to embed spaces in $arg
+do if test ".$opt" != "." ; then
+ eval "export opt_$opt='$arg'"
+ opt=""
+ else
+ case "$arg" in
+ -*=*)
+ opt=`echo "$arg" | $SED -e "s/-*\\([$AA][$AA-]*\\).*/\\1/" -e y/-/_/`
+ if test ".$opt" = "." ; then
+ error "invalid option $arg"
+ else
+ arg=`echo "$arg" | $SED -e "s/^[^=]*=//"`
+ eval "export opt_$opt='$arg'"
+ opt_variables="$opt_variables $opt"
+ fi
+ opt="" ;;
+ -*?-*) : an option with an argument --main-file=x or --main-file x
+ opt=`echo "$arg" | $SED -e "s/-*\\([$AA][$AA-]*\\).*/\\1/" -e y/-/_/`
+ if test ".$opt" = "." ; then
+ error "invalid option $arg"
+ opt=""
+ else :
+ # keep the option for next round
+ fi ;;
+ -*) : a simple option --filelist or --debug or --verbose
+ opt=`echo "$arg" | $SED -e "s/^-*\\([$AA][$AA-]*\\).*/\\1/" -e y/-/_/`
+ if test ".$opt" = "." ; then
+ error "invalid option $arg"
+ else
+ arg=`echo "$arg" | $SED -e "s/^[^=]*=//"`
+ eval "export opt_$opt=' '"
+ fi
+ opt="" ;;
+ *) $hint "<$arg>"
+ if test ".$opt_main_file" = "." ; then opt_main_file="$arg" ; else
+ test ".$opt_files" != "." && opt_files="$opt_files$opt_fileseparator"
+ opt_files="$opt_files$arg" ; fi
+ opt="" ;;
+ esac
+ fi
+done ; if test ".$opt" != "." ; then
+ eval "export opt_$opt='$arg'"
+ opt=""
+fi
+### env | grep ^opt
+
+test ".$opt_main_file" != "." && test -f "$opt_main_file" && \
+SITEFILE="$opt_main_file"
+test ".$opt_site_file" != "." && test -f "$opt_site_file" && \
+SITEFILE="$opt_site_file"
+test "$opt_debug" && \
+hint="note"
+
+if test ".$opt_help" != "." ; then
+ F="$SITEFILE"
+ echo "$0 [sitefile]";
+ echo " default sitefile = $F";
+ echo "options:";
+ echo " --filelist : show list of target files as ectracted from $F"
+ echo " --src-dir xx : if source files are not where mksite is executed"
+ echo " --tmp-dir xx : use temp instead of local directory"
+ echo " --tmp : use automatic temp directory in ${TEMP-/tmp}/mksite.*"
+ exit;
+ echo " internal:"
+ echo "--fileseparator=x : for building the internal filelist (default '?')"
+ echo "--files xx : for list of additional files to be processed"
+ echo "--main-file xx : for the main sitefile to take file list from"
+fi
+
+if test ".$SITEFILE" = "." ; then
+ error "no SITEFILE found (default would be 'site.htm')"
+ exit 1
+else
+ $hint "sitefile:" `ls -s $SITEFILE`
+fi
+
+tmp="." ; if test ".$opt_tmp_dir" != "." ; then tmp="$opt_tmp_dir" ; fi
+if test ".$opt_tmp_dir" = "." && test ".$opt_tmp" != "." ; then
+tmp="${TEMP-/tmp}/mksite.$$" ; fi
+
+# we use external files to store mappings - kind of relational tables
+MK_TAGS="$tmp/$MK.tags.tmp.sed"
+MK_VARS="$tmp/$MK.vars.tmp.sed"
+MK_SPAN="$tmp/$MK.span.tmp.sed"
+MK_META="$tmp/$MK.meta.tmp.htm"
+MK_METT="$tmp/$MK.mett.tmp.htm"
+MK_TEST="$tmp/$MK.test.tmp.htm"
+MK_FAST="$tmp/$MK.fast.tmp.sed"
+MK_GETS="$tmp/$MK.gets.tmp.sed"
+MK_PUTS="$tmp/$MK.puts.tmp.sed"
+MK_SITE="$tmp/$MK.site.tmp.sed"
+MK_SECT1="$tmp/$MK.sect1.tmp.sed"
+MK_SECT2="$tmp/$MK.sect2.tmp.sed"
+MK_SECT3="$tmp/$MK.sect3.tmp.sed"
+MK_STYLE="$tmp/$MK.style.tmp.sed"
+MK_DATA="$tmp/$MK.$DATA.tmp.htm"
+
+# ========================================================================
+# ========================================================================
+# ========================================================================
+# MAGIC VARS
+# IN $SITEFILE
+printerfriendly=""
+sectionlayout="list"
+sitemaplayout="list"
+attribvars=" " # <x ref="${varname:=default}">
+updatevars=" " # <!--$varname:=-->default
+expandvars=" " # <!--$varname-->
+commentvars=" " # $updatevars && $expandsvars
+sectiontab=" " # highlight ^<td class=...>...href="$section"
+currenttab=" " # highlight ^<br>..<a href="$topic">
+headsection="no"
+tailsection="no"
+sectioninfo="no" # using <h2> title <h2> = info text
+emailfooter="no"
+
+if $GREP "<!--multi-->" $SITEFILE >$NULL ; then
+echo \
+"WARNING: do not use <!--multi-->, change to <!--mksite:multi--> " "$SITEFILE"
+echo \
+"warning: or <!--mksite:multisectionlayout--> <!--mksite:multisitemaplayout-->"
+sectionlayout="multi"
+sitemaplayout="multi"
+fi
+if $GREP "<!--mksite:multi-->" $SITEFILE >$NULL ; then
+sectionlayout="multi"
+sitemaplayout="multi"
+fi
+if $GREP "<!--mksite:multilayout-->" $SITEFILE >$NULL ; then
+sectionlayout="multi"
+sitemaplayout="multi"
+fi
+
+mksite_magic_option ()
+{
+ # $1 is word/option to check for
+ INP="$2" ; test ".$INP" = "." && INP="$SITEFILE"
+ $SED \
+ -e "s/\\(<!--mksite:\\)\\($1\\)-->/\\1\\2: -->/g" \
+ -e "s/\\(<!--mksite:\\)\\([$AA][$AA]*\\)\\($1\\)-->/\\1\\3:\\2-->/g" \
+ -e "/<!--mksite:$1:/!d" \
+ -e "s/.*<!--mksite:$1:\\([^<>]*\\)-->.*/\\1/" \
+ -e "s/.*<!--mksite:$1:\\([^-]*\\)-->.*/\\1/" \
+ -e "/<!--mksite:$1:/d" -e q $INP # $++
+}
+
+x=`mksite_magic_option sectionlayout` ; case "$x" in
+ "list"|"multi") sectionlayout="$x" ;; esac
+x=`mksite_magic_option sitemaplayout` ; case "$x" in
+ "list"|"multi") sitemaplayout="$x" ;; esac
+x=`mksite_magic_option attribvars` ; case "$x" in
+ " "|"no"|"warn") attribvars="$x" ;; esac
+x=`mksite_magic_option updatevars` ; case "$x" in
+ " "|"no"|"warn") updatevars="$x" ;; esac
+x=`mksite_magic_option expandvars` ; case "$x" in
+ " "|"no"|"warn") expandvars="$x" ;; esac
+x=`mksite_magic_option commentvars` ; case "$x" in
+ " "|"no"|"warn") commentvars="$x" ;; esac
+x=`mksite_magic_option printerfriendly` ; case "$x" in
+ " "|".*"|"-*") printerfriendly="$x" ;; esac
+x=`mksite_magic_option sectiontab` ; case "$x" in
+ " "|"no"|"warn") sectiontab="$x" ;; esac
+x=`mksite_magic_option currenttab` ; case "$x" in
+ " "|"no"|"warn") currenttab="$x" ;; esac
+x=`mksite_magic_option sectioninfo` ; case "$x" in
+ " "|"no"|"[=:-]") sectioninfo="$x" ;; esac
+x=`mksite_magic_option emailfooter`
+ test ".$x" != "." && emailfooter="$x"
+
+test ".$opt_print" != "." && printerfriendly="$opt_print"
+test ".$commentvars" = ".no" && updatevars="no" # duplicated into
+test ".$commentvars" = ".no" && expandvars="no" # info2vars_sed ()
+
+
+$hint "'$sectionlayout'sectionlayout '$sitemaplayout'sitemaplayout"
+$hint "'$attribvars'attribvars '$updatevars'updatevars"
+$hint "'$expandvars'expandvars '$commentvars'commentvars "
+$hint "'$currenttab'currenttab '$sectiontab'sectiontab"
+$hint "'$headsection'headsection '$tailsection'tailsection"
+
+if ($STAT_R "$SITEFILE" >$NULL) 2>$NULL ; then : ; else STAT_R=":" ; fi
+# ==========================================================================
+# init a few global variables
+# 0. INIT
+
+mkpathdir () {
+ if test -n "$1" && test ! -d "$1" ; then
+ echo "!! mkdir '$1'" ; mkdir "$1"
+ test ! -d "$1" || mkdir -p "$1"
+ fi
+}
+
+mkpathfile () {
+ dirname=`echo "$1" | $SED -e "s:/[^/][^/]*\$::"`
+ if test ".$1" != ".$dirname" && test ".$dirname" != "." ;
+ then mkpathdir "$dirname"; fi
+}
+
+mknewfile () {
+ mkpathfile "$1"
+ $CATNULL > "$1"
+}
+
+tmp_dir_was_created="no"
+if test ! -d "$tmp" ; then mkpathdir "$tmp" ; tmp_dir_was_created="yes" ; fi
+
+# $MK_TAGS - originally, we would use a lambda execution on each
+# uppercased html tag to replace <P> with <p class="P">. Here we just
+# walk over all the known html tags and make an sed script that does
+# the very same conversion. There would be a chance to convert a single
+# tag via "h;y;x" or something we do want to convert all the tags on
+# a single line of course.
+mknewfile "$MK_TAGS"
+for M in `echo $HTMLTAGS`
+do P=`echo "$M" | $SED -e "y/$LOWER/$UPPER/"`
+ echo "s|<$P>|<$M class=\"$P\">|g" >> "$MK_TAGS"
+ echo "s|<$P |<$M class=\"$P\" |g" >> "$MK_TAGS"
+ echo "s|</$P>|</$M>|g" >> "$MK_TAGS"
+done
+ echo "s|<>|\\&nbsp\\;|g" >> "$MK_TAGS"
+ echo "s|<->|<WBR />|g" >> "$MK_TAGS"
+ echo "s|<c>|<code>|g" >> "$MK_TAGS"
+ echo "s|</c>|</code>|g" >> "$MK_TAGS"
+ echo "s|<section>||g" >> "$MK_TAGS"
+ echo "s|</section>||g" >> "$MK_TAGS"
+ echo "s|<\\(a [^<>]*\\) />|<\\1></a>|g" >> "$MK_TAGS"
+ _ulink_="<a href=\"\\1\" remap=\"url\">\\1</a>"
+ echo "s|<a>\\([$az$AZ][$az$AZ]*://[^<>]*\\)</a>|$_ulink_|g" >> "$MK_TAGS"
+# also make sure that some non-html entries are cleaned away that
+# we are generally using to inject meta information. We want to see
+# that meta ino in the *.htm browser view during editing but they
+# shall not get present in the final html page for publishing.
+DC_VARS="contributor date source language coverage identifier"
+DC_VARS="$DC_VARS rights relation creator subject description"
+DC_VARS="$DC_VARS publisher DCMIType"
+_EQUIVS="refresh expires content-type cache-control"
+_EQUIVS="$_EQUIVS redirect charset" # mapped to refresh / content-type
+_EQUIVS="$_EQUIVS content-language content-script-type content-style-type"
+for P in $DC_VARS $_EQUIVS ; do # dublin core embedded
+ echo "s|<$P>[^<>]*</$P>||g" >> "$MK_TAGS"
+done
+ test ".$opt_keepsect" = "." && \
+ echo "s|<a sect=\"[$AZ$NN]\"|<a|g" >> "$MK_TAGS"
+ echo "s|<!--[$AX]*[?]-->||g" >> "$MK_TAGS"
+ echo "s|<!--\\\$[$AX]*[?]:-->||g" >> "$MK_TAGS"
+ echo "s|<!--\\\$[$AX]*:[?=]-->||g" >> "$MK_TAGS"
+ echo "s|\\(<[^<>]*\\)\\\${[$AX]*:[?=]\\([^<{}>]*\\)}\\([^<>]*>\\)|\\1\\2\\3|g" >>$MK_TAGS
+
+# see overview at www.metatab.de - http-equivs are
+# <refresh>5; url=target</reresh> or <redirect>target</redirect>
+# <content-type>text/html; charset=koi8-r</content-type> iso-8859-1/UTF-8
+# <content-language>de</content-language> <charset>UTF-8</charset>
+# <content-script-type>text/javascript</content-script-type> /jscript/vbscript
+# <content-style-type>text/css</content-style-type>
+# <cache-control>no-cache</cache-control>
+
+trimm ()
+{
+ echo "$1" | $SED -e "s:^ *::" -e "s: *\$::";
+}
+trimmm ()
+{
+ echo "$1" | $SED -e "s:^ *::" -e "s: *\$::" -e "s:[ ][ ]*: :g";
+}
+
+timezone ()
+{
+ # +%z is an extension while +%Z is supposed to be posix
+ _timezone=`$DATE_NOW +%z`
+ case "$_timezone" in
+ *+*) echo "$_timezone" ;;
+ *-*) echo "$_timezone" ;;
+ *) $DATE_NOW +%Z
+ esac
+}
+timetoday ()
+{
+ $DATE_NOW +%Y-%m-%d
+}
+timetodays ()
+{
+ $DATE_NOW +%Y-%m%d
+}
+
+# ======================================================================
+# FUNCS
+
+sed_longscript ()
+{
+ # hpux sed has a limit of 100 entries per sed script !
+ $SED -e "100q" "$1" > "$1~1~"
+ $SED -e "1,100d" -e "200q" "$1" > "$1~2~"
+ $SED -e "1,200d" -e "300q" "$1" > "$1~3~"
+ $SED -e "1,300d" -e "400q" "$1" > "$1~4~"
+ $SED -e "1,400d" -e "500q" "$1" > "$1~5~"
+ $SED -e "1,500d" -e "600q" "$1" > "$1~6~"
+ $SED -e "1,600d" -e "700q" "$1" > "$1~7~"
+ $SED -e "1,700d" -e "800q" "$1" > "$1~8~"
+ $SED -e "1,800d" -e "900q" "$1" > "$1~9~"
+ $SED -f "$1~1~" -f "$1~2~" -f "$1~3~" -f "$1~4~" -f "$1~5~" \
+ -f "$1~6~" -f "$1~7~" -f "$1~8~" -f "$1~9~" "$2"
+}
+
+sed_escape_key ()
+{
+ $SED -e "s|\\.|\\\\&|g" -e "s|\\[|\\\\&|g" -e "s|\\]|\\\\&|g" "$@"
+}
+
+sed_slash_key () # helper to escape chars special in /anchor/ regex
+{ # currently escaping "/" "[" "]" "."
+ echo "$1" | sed_escape_key -e "s|/|\\\\&|g"
+}
+sed_piped_key () # helper to escape chars special in s|anchor|| regex
+{ # currently escaping "|" "[" "]" "."
+ echo "$1" | sed_escape_key -e "s/|/\\\\&/g"
+}
+
+back_path () # helper to get the series of "../" for a given path
+{
+ echo "$1" | $SED -e "/\\//!d" -e "s|/[^/]*\$|/|" -e "s|[^/]*/|../|g"
+}
+
+dir_name ()
+{
+ echo "$1" | $SED -e "s:/[^/][^/]*\$::"
+}
+
+piped_value="s/|/\\\\|/g"
+amp_value="s|&|\\\\&|g"
+info2vars_sed () # generate <!--$vars--> substition sed addon script
+{
+ INP="$1" ; test ".$INP" = "." && INP="$tmp/$F.$DATA"
+ V8=" *\\([^ ][^ ]*\\) \\(.*\\)<$QX>"
+ V9=" *DC[.]\\([^ ][^ ]*\\) \\(.*\\)<$QX>"
+ N8=" *\\([^ ][^ ]*\\) \\([$NN].*\\)<$QX>"
+ N9=" *DC[.]\\([^ ][^ ]*\\) \\([$NN].*\\)<$QX>"
+ V0="\\\\([<]*\\\\)\\\\\\\$"
+ V1="\\\\([^<>]*\\\\)\\\\\\\$"
+ V2="\\\\([^{<>}]*\\\\)"
+ V3="\\\\([^<>]*\\\\)"
+ SS="<""<>"">" # spacer so value="2004" does not make for s|\(...\)|\12004|
+ test ".$commentvars" = ".no" && updatevars="no" # duplicated from
+ test ".$commentvars" = ".no" && expandvars="no" # option handling
+ test ".$expandvars" != ".no" && \
+ $SED -e "/^=....=formatter /d" -e "$piped_value" \
+ -e "/^<$Q'name'>/s,<$Q'name'>$V9,s|<!--$V0\\1[?]-->|- \\2|," \
+ -e "/^<$Q'Name'>/s,<$Q'Name'>$V9,s|<!--$V0\\1[?]-->|(\\2)|," \
+ -e "/^<$Q'name'>/s,<$Q'name'>$V8,s|<!--$V0\\1[?]-->|- \\2|," \
+ -e "/^<$Q'Name'>/s,<$Q'Name'>$V8,s|<!--$V0\\1[?]-->|(\\2)|," \
+ -e "/^<$Q/d" -e "/^<!/d" -e "$amp_value" $INP # $++
+ test ".$expandvars" != ".no" && \
+ $SED -e "/^=....=formatter /d" -e "$piped_value" \
+ -e "/^<$Q'text'>/s,<$Q'text'>$V9,s|<!--$V1\\1-->|\\\\1$SS\\2|," \
+ -e "/^<$Q'Text'>/s,<$Q'Text'>$V9,s|<!--$V1\\1-->|\\\\1$SS\\2|," \
+ -e "/^<$Q'name'>/s,<$Q'name'>$V9,s|<!--$V1\\1[?]-->|\\\\1$SS\\2|," \
+ -e "/^<$Q'Name'>/s,<$Q'Name'>$V9,s|<!--$V1\\1[?]-->|\\\\1$SS\\2|," \
+ -e "/^<$Q'text'>/s,<$Q'text'>$V8,s|<!--$V1\\1-->|\\\\1$SS\\2|," \
+ -e "/^<$Q'Text'>/s,<$Q'Text'>$V8,s|<!--$V1\\1-->|\\\\1$SS\\2|," \
+ -e "/^<$Q'name'>/s,<$Q'name'>$V8,s|<!--$V1\\1[?]-->|\\\\1$SS\\2|," \
+ -e "/^<$Q'Name'>/s,<$Q'Name'>$V8,s|<!--$V1\\1[?]-->|\\\\1$SS\\2|," \
+ -e "/^<$Q/d" -e "/^<!/d" -e "$amp_value" $INP # $++
+ test ".$updatevars" != ".no" && \
+ $SED -e "/^=....=formatter /d" -e "$piped_value" \
+ -e "/^<$Q'name'>/s,<$Q'name'>$V9,s|<!--$V0\\1:[?]-->[^<>]*|- \\2|," \
+ -e "/^<$Q'Name'>/s,<$Q'Name'>$V9,s|<!--$V0\\1:[?]-->[^<>]*|(\\2)|," \
+ -e "/^<$Q'name'>/s,<$Q'name'>$V8,s|<!--$V0\\1:[?]-->[^<>]*|- \\2|," \
+ -e "/^<$Q'Name'>/s,<$Q'Name'>$V8,s|<!--$V0\\1:[?]-->[^<>]*|(\\2)|," \
+ -e "/^<$Q/d" -e "/^<!/d" -e "$amp_value" $INP # $++
+ test ".$updatevars" != ".no" && \
+ $SED -e "/^=....=formatter /d" -e "$piped_value" \
+ -e "/^<$Q'text'>/s,<$Q'text'>$V9,s|<!--$V1\\1:[=]-->[^<>]*|\\\\1$SS\\2|," \
+ -e "/^<$Q'Text'>/s,<$Q'Text'>$V9,s|<!--$V1\\1:[=]-->[^<>]*|\\\\1$SS\\2|," \
+ -e "/^<$Q'name'>/s,<$Q'name'>$V9,s|<!--$V1\\1:[?]-->[^<>]*|\\\\1$SS\\2|," \
+ -e "/^<$Q'Name'>/s,<$Q'Name'>$V9,s|<!--$V1\\1:[?]-->[^<>]*|\\\\1$SS\\2|," \
+ -e "/^<$Q'text'>/s,<$Q'text'>$V8,s|<!--$V1\\1:[=]-->[^<>]*|\\\\1$SS\\2|," \
+ -e "/^<$Q'Text'>/s,<$Q'Text'>$V8,s|<!--$V1\\1:[=]-->[^<>]*|\\\\1$SS\\2|," \
+ -e "/^<$Q'name'>/s,<$Q'name'>$V8,s|<!--$V1\\1:[?]-->[^<>]*|\\\\1$SS\\2|," \
+ -e "/^<$Q'Name'>/s,<$Q'Name'>$V8,s|<!--$V1\\1:[?]-->[^<>]*|\\\\1$SS\\2|," \
+ -e "/^<$Q/d" -e "/^<!/d" -e "$amp_value" $INP # $++
+ test ".$attribvars" != ".no" && \
+ $SED -e "/^=....=formatter /d" -e "$piped_value" \
+ -e "/^<$Q'text'>/s,<$Q'text'>$V9,s|<$V1{\\1:[=]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \
+ -e "/^<$Q'Text'>/s,<$Q'Text'>$V9,s|<$V1{\\1:[=]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \
+ -e "/^<$Q'name'>/s,<$Q'name'>$V9,s|<$V1{\\1:[?]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \
+ -e "/^<$Q'Name'>/s,<$Q'Name'>$V9,s|<$V1{\\1:[?]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \
+ -e "/^<$Q'text'>/s,<$Q'text'>$V8,s|<$V1{\\1:[=]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \
+ -e "/^<$Q'Text'>/s,<$Q'Text'>$V8,s|<$V1{\\1:[=]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \
+ -e "/^<$Q'name'>/s,<$Q'name'>$V8,s|<$V1{\\1:[?]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \
+ -e "/^<$Q'Name'>/s,<$Q'Name'>$V8,s|<$V1{\\1:[?]$V2}$V3>|<\\\\1$SS\\2\\\\3>|," \
+ -e "/^<$Q/d" -e "/^<!/d" -e "$amp_value" $INP # $++
+ # if value="2004" then generated sed might be "\\12004" which is bad
+ # instead we generate an edited value of "\\1$SS$value" and cut out
+ # the spacer now after expanding the variable values:
+ echo "s|$SS||g" # $++
+}
+
+info2meta_sed () # generate <meta name..> text portion
+{
+ # http://www.metatab.de/meta_tags/DC_type.htm
+ INP="$1" ; test ".$INP" = "." && INP="$tmp/$F.$DATA"
+ V6=" *HTTP[.]\\([^ ][^ ]*\\) \\(.*\\)<$QX>"
+ V7=" *DC[.]\\([^ ][^ ]*\\) \\(.*\\)<$QX>"
+ V8=" *\\([^ ][^ ]*\\) \\(.*\\)<$QX>"
+ DATA_META_TYPE_SCHEME="name=\"DC.type\" content=\"\\2\" scheme=\"\\1\""
+ DATA_META_DCMI="name=\"\\1\" content=\"\\2\" scheme=\"DCMIType\""
+ DATA_META_NAME_TZ="name=\"\\1\" content=\"\\2 `timezone`\""
+ DATA_META_NAME="name=\"\\1\" content=\"\\2\""
+ DATA_META_HTTP="http-equiv=\"\\1\" content=\"\\2\""
+ $SED -e "/=....=today /d" \
+ -e "/<$Q'meta'>HTTP[.]/s,<$Q'meta'>$V6, <meta $DATA_META_HTTP />," \
+ -e "/<$Q'meta'>DC[.]DCMIType /s,<$Q'meta'>$V7, <meta $DATA_META_TYPE_SCHEME />," \
+ -e "/<$Q'meta'>DC[.]type Collection$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \
+ -e "/<$Q'meta'>DC[.]type Dataset$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \
+ -e "/<$Q'meta'>DC[.]type Event$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \
+ -e "/<$Q'meta'>DC[.]type Image$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \
+ -e "/<$Q'meta'>DC[.]type Service$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \
+ -e "/<$Q'meta'>DC[.]type Software$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \
+ -e "/<$Q'meta'>DC[.]type Sound$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \
+ -e "/<$Q'meta'>DC[.]type Text$/s,<$Q'meta'>$V8, <meta $DATA_META_DCMI />," \
+ -e "/<$Q'meta'>DC[.]date[.].*[+]/s,<$Q'meta'>$V8, <meta $DATA_META_NAME />," \
+ -e "/<$Q'meta'>DC[.]date[.].*[:]/s,<$Q'meta'>$V8, <meta $DATA_META_NAME_TZ />," \
+ -e "/<$Q'meta'>/s,<$Q'meta'>$V8, <meta $DATA_META_NAME />," \
+ -e "/<meta name=\"[^\"]*\" content=\"\" /d" \
+ -e "/<meta http-equiv=\"[^\"]*\" content=\"\" /d" \
+ -e "/^<$Q/d" -e "/^<!/d" $INP # $++
+}
+
+info_get_entry () # get the first <!--vars--> value known so far
+{
+ TXT="$1" ; test ".$TXT" = "." && TXT="sect"
+ INP="$2" ; test ".$INP" = "." && INP="$tmp/$F.$DATA"
+ $SED -e "/<$Q'text'>$TXT /!d" \
+ -e "s|<$Q'text'>$TXT ||" -e "s|<$QX>||" -e "q" $INP # $++
+}
+
+info1grep () # test for a <!--vars--> substition to be already present
+{
+ TXT="$1" ; test ".$TXT" = "." && TXT="sect"
+ INP="$2" ; test ".$INP" = "." && INP="$tmp/$F.$DATA"
+ $GREP "^<$Q'text'>$TXT " $INP >$NULL
+ return $?
+}
+
+dx_init()
+{
+ mkpathdir "$tmp"
+ dx_meta formatter `basename $opt_formatter` > "$tmp/$F.$DATA"
+ for opt in $opt_variables ; do case "$opt" in # commandline --def=value
+ *_*) op_=`echo "$opt" | sed -e "y/_/-/"` # makes for <!--$def-->
+ dx_meta "$op_" `eval echo "\\\$opt_$opt"` ;;
+ *) dx_text "$opt" `eval echo "\\\$opt_$opt"` ;;
+ esac ; done
+}
+
+dx_line ()
+{
+ echo "<$Q$1>$2 "`trimmm "$3"`"<$QX>" >> "$tmp/$F.$DATA"
+}
+
+DX_line ()
+{
+ dx_val_=`echo "$3" | sed -e "s/<[^<>]*>//g"`
+ dx_line "$1" "$2" "$dx_val_"
+}
+
+dx_text ()
+{
+ dx_line "'text'" "$1" "$2"
+}
+
+DX_text () # add a <!--vars--> substition includings format variants
+{
+ N=`trimm "$1"` ; T=`trimm "$2"`
+ if test ".$N" != "." ; then
+ if test ".$T" != "." ; then
+ text=`echo "$T" | $SED -e "y/$UPPER/$LOWER/" -e "s/<[^<>]*>//g"`
+ dx_line "'text'" "$N" "$T"
+ dx_line "'name'" "$N" "$text"
+ varname=`echo "$N" | $SED -e 's/.*[.]//'` # cut out front part
+ if test ".$N" != ".$varname" ; then
+ text=`echo "$varname $T" | $SED -e "y/$UPPER/$LOWER/" -e "s/<[^<>]*>//g"`
+ dx_line "'Text'" "$varname" "$T"
+ dx_line "'Name'" "$varname" "$text"
+ fi
+ fi
+ fi
+}
+
+dx_meta ()
+{
+ DX_line "'meta'" "$1" "$2"
+}
+
+DX_meta () # add simple meta entry and its <!--vars--> subsitution
+{
+ DX_line "'meta'" "$1" "$2"
+ DX_text "$1" "$2"
+}
+
+DC_meta () # add new DC.meta entry plus two <!--vars--> substitutions
+{
+ DX_line "'meta'" "DC.$1" "$2"
+ DX_text "DC.$1" "$2"
+ DX_text "$1" "$2"
+}
+
+HTTP_meta () # add new HTTP.meta entry plus two <!--vars--> substitutions
+{
+ DX_line "'meta'" "HTTP.$1" "$2"
+ DX_text "HTTP.$1" "$2"
+ DX_text "$1" "$2"
+}
+
+DC_VARS_Of () # check DC vars as listed in $DC_VARS global and generate DC_meta
+{ # the results will be added to .meta.tmp and .vars.tmp later
+ FILENAME="$1" ; test ".$FILENAME" = "." && FILENAME="$SOURCEFILE"
+ for M in $DC_VARS title ; do
+ # scan for a <markup> of this name
+ part=`$SED -e "/<$M>/!d" -e "s|.*<$M>||" -e "s|</$M>.*||" -e q $FILENAME`
+ part=`trimm "$part"`
+ text=`echo "$part" | $SED -e "s|^[$AA]*:||"`
+ text=`trimm "$text"`
+ test ".$text" = "." && continue
+ # <mark:part> will be <meta name="mark.part">
+ if test ".$text" != ".$part" ; then
+ N=`echo "$part" | $SED -e "s/:.*//"`
+ DC_meta "$M.$N" "$text"
+ elif test ".$M" = ".date" ; then
+ DC_meta "$M.issued" "$text" # "<date>" -> "<date>issued:"
+ else
+ DC_meta "$M" "$text"
+ fi
+ done
+}
+
+HTTP_VARS_Of () # check HTTP-EQUIVs as listed in $_EQUIV global then
+{ # generate meta tags that are http-equiv= instead of name=
+ FILENAME="$1" ; test ".$FILENAME" = "." && FILENAME="$SOURCEFILE"
+ for M in $_EQUIVS ; do
+ # scan for a <markup> of this name
+ part=`$SED -e "/<$M>/!d" -e "s|.*<$M>||" -e "s|</$M>.*||" -e q $FILENAME`
+ part=`trimm "$part"`
+ text=`echo "$part" | $SED -e "s|^[$AA]*:||"`
+ text=`trimm "$text"`
+ test ".$text" = "." && continue
+ if test ".$M" = ".redirect" ; then
+ HTTP_meta "refresh" "5; url=$text" ; DX_text "$M" "$text"
+ elif test ".$M" = ".charset" ; then
+ HTTP_meta "content-type" "text/html; charset=$text"
+ else
+ HTTP_meta "$M" "$text"
+ fi
+ done
+}
+
+DC_isFormatOf () # make sure there is this DC.relation.isFormatOf tag
+{ # choose argument for a fallback (usually $SOURCEFILE)
+ NAME="$1" ; test ".$NAME" = "." && NAME="$SOURCEFILE"
+ info1grep DC.relation.isFormatOf || DC_meta relation.isFormatOf "$NAME"
+}
+
+DC_publisher () # make sure there is this DC.publisher meta tag
+{ # choose argument for a fallback (often $USER)
+ NAME="$1" ; test ".$NAME" = "." && NAME="$USER"
+ info1grep DC.publisher || DC_meta publisher "$NAME"
+}
+
+DC_modified () # make sure there is a DC.date.modified meta tag
+{ # maybe choose from filesystem dates if possible
+ ZZ="$1" # target file
+ if info1grep DC.date.modified ; then :
+ else
+ _42_chars="........................................."
+ cut_42_55="s/^$_42_chars\\(.............\\).*/\\1/" # i.e.`cut -b 42-55`
+ text=`$STAT_R $ZZ 2>$NULL | $SED -e '/odify:/!d' -e 's|.*fy:||' -e q`
+ text=`echo "$text" | $SED -e "s/:..[.][$NN]*//"`
+ text=`trimm "$text"`
+ test ".$text" = "." && \
+ text=`$DATE_R "$ZZ" +%Y-%m-%d 2>$NULL` # GNU sed
+ test ".$text" = "." &&
+ text=`$LS_L "$ZZ" | $SED -e "$cut_42_55" -e "s/^ *//g" -e "q"`
+ text=`echo "$text" | $SED -e "s/[$NN]*:.*//"` # cut way seconds
+ DC_meta date.modified `trimm "$text"`
+ fi
+}
+
+DC_date () # make sure there is this DC.date meta tag
+{ # choose from one of the available DC.date.* specials
+ ZZ="$1" # source file
+ if info1grep DC.date
+ then DX_text issue "dated `info_get_entry DC.date`"
+ DX_text updated "`info_get_entry DC.date`"
+ else text=""
+ for kind in available issued modified created ; do
+ text=`info_get_entry DC.date.$kind`
+ # test ".$text" != "." && echo "$kind = date = $text ($ZZ)"
+ test ".$text" != "." && break
+ done
+ if test ".$text" = "." ; then
+ M="date"
+ part=`$SED -e "/<$M>/!d" -e "s|.*<$M>||" -e "s|</$M>.*||" -e q $ZZ`
+ part=`trimm "$part"`
+ text=`echo "$part" | $SED -e "s|^[$AA]*:||"`
+ text=`trimm "$text"`
+ fi
+ if test ".$text" = "." ; then
+ M="!--date:*=*--" # takeover updateable variable...
+ part=`$SED -e "/<$M>/!d" -e "s|.*<$M>||" -e "s|</.*||" -e q $ZZ`
+ part=`trimm "$part"`
+ text=`echo "$part" | $SED -e "s|^[$AA]*:||" -e "s|\\&.*||"`
+ text=`trimm "$text"`
+ fi
+ text=`echo "$text" | $SED -e "s/[$NN]*:.*//"` # cut way seconds
+ DX_text updated "$text"
+ text1=`echo "$text" | $SED -e "s|^.* *updated ||"`
+ if test ".$text" != ".$text1" ; then
+ kind="modified" ; text=`echo "$text1" | $SED -e "s|,.*||"`
+ fi
+ text1=`echo "$text" | $SED -e "s|^.* *modified ||"`
+ if test ".$text" != ".$text1" ; then
+ kind="modified" ; text=`echo "$text1" | $SED -e "s|,.*||"`
+ fi
+ text1=`echo "$text" | $SED -e "s|^.* *created ||"`
+ if test ".$text" != ".$text1" ; then
+ kind="created" ; text=`echo "$text1" | $SED -e "s|,.*||"`
+ fi
+ text=`echo "$text" | $SED -e "s/[$NN]*:.*//"` # cut way seconds
+ DC_meta date `trimm "$text"`
+ DX_text issue `trimm "$kind $text"`
+ fi
+}
+
+DC_title ()
+{
+ # choose a title for the document, either an explicit title-tag
+ # or one of the section headers in the document or fallback to filename
+ ZZ="$1" # target file
+ if info1grep DC.title ; then :
+ else
+ for M in TITLE title H1 h1 H2 h2 H3 H3 H4 H4 H5 h5 H6 h6 ; do
+ text=`$SED -e "/<$M>/!d" -e "s|.*<$M>||" -e "s|</$M>.*||" -e q $ZZ`
+ text=`trimm "$text"` ; test ".$text" != "." && break
+ MM="$M [^<>]*"
+ text=`$SED -e "/<$MM>/!d" -e "s|.*<$MM>||" -e "s|</$M>.*||" -e q $ZZ`
+ text=`trimm "$text"` ; test ".$text" != "." && break
+ done
+ if test ".text" = "." ; then
+ text=`basename $ZZ .html`
+ text=`basename $text .htm | $SED -e 'y/_/ /' -e "s/\\$/ info/"`
+ fi
+ term=`echo "$text" | $SED -e 's/.*[(]//' -e 's/[)].*//'`
+ text=`echo "$text" | $SED -e 's/[(][^()]*[)]//'`
+ if test ".$term" = "." || test ".$term" = ".$text" ; then
+ DC_meta title "$text"
+ else
+ DC_meta title "$term - $text"
+ fi
+ fi
+}
+
+site_get_section () # return parent section page of given page
+{
+ _F_=`sed_slash_key "$1"`
+ $SED -e "/^<$Q'sect'>$_F_ /!d" \
+ -e "s|^<$Q'sect'>$_F_ ||" -e "s|<$QX>||" \
+ -e q "$MK_DATA" # $++
+}
+
+DC_section () # not really a DC relation (shall we use isPartOf ?)
+{ # each document should know its section father
+ sectn=`site_get_section "$F"`
+ if test ".$sectn" != "." ; then
+ DC_meta relation.section "$sectn"
+ fi
+}
+
+info_get_entry_section()
+{
+ info_get_entry DC.relation.section # $++
+}
+
+site_get_selected () # return section of given page
+{
+ _F_=`sed_slash_key "$1"`
+ $SED -e "/<$Q'use.'>$_F_ /!d" \
+ -e "s|<$Q'use.'>[^ ]* ||" -e "s|<$QX>||" \
+ -e q "$MK_DATA" # $++
+}
+
+DC_selected () # not really a DC title (shall we use alternative ?)
+{
+ # each document might want to highlight the currently selected item
+ short=`site_get_selected "$F"`
+ if test ".$short" != "." ; then
+ DC_meta title.selected "$short"
+ fi
+}
+
+info_get_entry_selected ()
+{
+ info_get_entry DC.title.selected # $++
+}
+
+site_get_rootsections () # return all sections from root of nav tree
+{
+ $SED -e "/^<$Q'use1'>/!d" \
+ -e "s|^<$Q'use.'>\\([^ ]*\\) .*|\\1|" "$MK_DATA" # $++
+}
+
+site_get_sectionpages () # return all children pages in the given section
+{
+ _F_=`sed_slash_key "$1"`
+ $SED -e "/^<$Q'sect'>[^ ]* $_F_<[^<>]*>\$/!d" \
+ -e "s|^<$Q'sect'>||" -e "s|<$QX>||" \
+ -e "s/ .*//" "$MK_DATA" # $++
+}
+
+site_get_subpages () # return all page children of given page
+{
+ _F_=`sed_slash_key "$1"`
+ $SED -e "/^<$Q'node'>[^ ]* $_F_<[^<>]*>\$/!d" \
+ -e "s|^<$Q'node'>||" -e "s|<$QX>||" \
+ -e "s/ .*//" "$MK_DATA"
+ # $++
+}
+
+site_get_parentpage () # return parent page for given page (".." for sections)
+{
+ _F_=`sed_slash_key "$1"`
+ $SED -e "/^<$Q'node'>$_F_ /!d" \
+ -e "s|^<$Q'node'>[^ ]* ||" -e "s|<$QX>||" \
+ -e "q" "$MK_DATA" # $++
+}
+
+DX_alternative () # detect wether page asks for alternative style
+{ # which is generally a shortpage variant
+ x=`mksite_magic_option alternative $1 | sed -e "s/^ *//" -e "s/ .*//"`
+ if test ".$x" != "." ; then
+ DX_text alternative "$x"
+ fi
+}
+
+info2head_sed () # append alternative handling script to $HEAD
+{
+ have=`info_get_entry alternative`
+ if test ".$have" != "." ; then
+ echo "/<!--mksite:alternative:$have .*-->/{" # $++
+ echo "s/<!--mksite:alternative:$have\\( .*\\)-->/\\1/" # $++
+ echo "q" # $++
+ echo "}" # $++
+ fi
+}
+info2body_sed () # append alternative handling script to $BODY
+{
+ have=`info_get_entry alternative`
+ if test ".$have" != "." ; then
+ echo "s/<!--mksite:alternative:$have\\( .*\\)-->/\\1/" # $++
+ fi
+}
+
+bodymaker_for_sectioninfo ()
+{
+ test ".$sectioninfo" = ".no" && return
+ _x_="<!--mksite:sectioninfo::-->"
+ _q_="\\([^<>]*[$AX][^<>]*\\)"
+ test ".$sectioninfo" != ". " && _q_="[ ][ ]*$sectioninfo\\([ ]\\)"
+ echo "s|\\(^<[hH][$NN][ >].*</[hH][$NN]>\\)$_q_|\\1$_x_\\2|" # $++
+ echo "/$_x_/s|^|<table width=\"100%\"><tr valign=\"bottom\"><td>|" # $++
+ echo "/$_x_/s|</[hH][$NN]>|&</td><td align=\"right\"><i>|" # $++
+ echo "/$_x_/s|\$|</i></td></tr></table>|" # $++
+ echo "s|$_x_||" # $++
+}
+
+fast_href () # args "$FILETOREFERENCE" "$FROMCURRENTFILE:$F"
+{ # prints path to $FILETOREFERENCE href-clickable in $FROMCURRENTFILE
+ # if no subdirectoy then output is the same as input $FILETOREFERENCE
+ R="$2" ; test ".$R" = "." && R="$F"
+ S=`back_path "$R"`
+ if test ".$S" = "."
+ then echo "$1" # $++
+ else _1_=`echo "$1" | \
+ $SED -e "/^ *\$/d" -e "/^\\//d" -e "/^[.][.]/d" -e "/^[$AA]*:/d" `
+ if test ".$_1_" = "." # don't move any in the pattern above
+ then echo "$1" # $++
+ else echo "$S$1" # $++ prefixed with backpath
+ fi fi
+}
+
+make_back_path () # "$FILE"
+{
+ R="$1" ; test ".$R" = "." && R="$F"
+ S=`back_path "$R"`
+ if test ".$S" != "." ; then
+ echo "s|\\(<[^<>]* href=\\\"\\)\\([$AA][^<>:]*\\\"[^<>]*>\\)|\\1$S\\2|g"
+ echo "s|\\(<[^<>]* src=\\\"\\)\\([$AA][^<>:]*\\\"[^<>]*>\\)|\\1$S\\2|g"
+ fi
+}
+
+# ============================================================== SITE MAP DATA
+# each entry needs atleast a list-title, a long-title, and a list-date
+# these are the basic information to be printed in the sitemap file
+# where it is bound the hierarchy of sect/subsect of the entries.
+
+site_map_list_title() # $file $text
+{
+ echo "<$Q'list'>$1 $2<$QX>" >> "$MK_DATA"
+}
+info_map_list_title() # $file $text
+{
+ echo "<$Q'list'>$2<$QX>" >> "$tmp/$1.$DATA"
+}
+site_map_long_title() # $file $text
+{
+ echo "<$Q'long'>$1 $2<$QX>" >> "$MK_DATA"
+}
+info_map_long_title() # $file $text
+{
+ echo "<$Q'long'>$2<$QX>" >> "$tmp/$1.$DATA"
+}
+site_map_list_date() # $file $text
+{
+ echo "<$Q'date'>$1 $2<$QX>" >> "$MK_DATA"
+}
+info_map_list_date() # $file $text
+{
+ echo "<$Q'date'>$2<$QX>" >> "$tmp/$1.$DATA"
+}
+
+siteinfo2sitemap () # generate <name><page><date> addon sed scriptlet
+{ # the resulting script will act on each item/line
+ # containing <!--"filename"--> and expand any following
+ # reference of <!--name--> or <!--date--> or <!--long-->
+ INP="$1" ; test ".$INP" = "." && INP="$MK_DATA"
+ _list_="s|\\\\(<!--\"\\1\"-->.*\\\\)<name href=[^<>]*>.*</name>|\\\\1<name href=\"\\1\">\\2</name>|"
+ _date_="s|\\\\(<!--\"\\1\"-->.*\\\\)<date>.*</date>|\\\\1<date>\\2</date>|"
+ _long_="s|\\\\(<!--\"\\1\"-->.*\\\\)<long>.*</long>|\\\\1<long>\\2</long>|"
+ $SED -e "s:&:\\\\&:g" \
+ -e "s:<$Q'list'>\\([^ ]*\\) \\(.*\\)<$QX>:$_list_:" \
+ -e "s:<$Q'date'>\\([^ ]*\\) \\(.*\\)<$QX>:$_date_:" \
+ -e "s:<$Q'long'>\\([^ ]*\\) \\(.*\\)<$QX>:$_long_:" \
+ -e "/^s|/!d" $INP # $++
+}
+
+make_multisitemap ()
+{ # each category gets its own column along with the usual entries
+ INPUTS="$1" ; test ".$INPUTS" = "." && INPUTS="$MK_DATA"
+ siteinfo2sitemap > "$MK_SITE" # have <name><long><date> addon-sed
+ _form_="<!--\"\\2\"--><!--use\\1--><long>\\3</long><!--end\\1-->"
+ _form_="$_form_<br><name href=\"\\2\">\\3</name><date>......</date>"
+ _tiny_="small><small><small" ; _tinyX_="small></small></small "
+ _tabb_="<br><$_tiny_> </$_tinyX_>" ; _bigg_="<big> </big>"
+ echo "<table width=\"100%\"><tr><td> " # $++
+ $SED -e "/^<$Q'[Uu]se.'>/!d" \
+ -e "/>[$AZ$az][$AZ$az][$AZ$az][$AZ$az]*:/d" \
+ -e "s|^<$Q'[Uu]se\\(.\\)'>\\([^ ]*\\) \\(.*\\)<$QX>|$_form_|" \
+ -f "$MK_SITE" -e "/<name/!d" \
+ -e "s|<!--use1-->|</td><td valign=\"top\"><b>|" \
+ -e "s|<!--end1-->|</b>|" \
+ -e "s|<!--use2-->|<br>|" \
+ -e "s|<!--use.-->|<br>|" -e "s/<!--[^<>]*-->/ /g" \
+ -e "s|<name |<$_tiny_><a |" -e "s|</name>||" \
+ -e "s|<date>|<small style=\"date\">|" \
+ -e "s|</date>|</small></a><br></$_tinyX_>|" \
+ -e "s|<long>|<!--long-->|" -e "s|</long>|<!--/long-->|" \
+ $INPUTS # $++
+ echo "</td><tr></table>" # $++
+}
+
+make_listsitemap ()
+{ # traditional - the body contains a list with date and title extras
+ INPUTS="$1" ; test ".$INPUTS" = "." && INPUTS="$MK_DATA"
+ siteinfo2sitemap > "$MK_SITE" # have <name><long><date> addon-sed
+ _form_="<!--\"\\2\"--><!--use\\1--><name href=\"\\2\">\\3</name>"
+ _form_="$_form_<date>......</date><long>\\3</long>"
+ _tabb_="<td>\\&nbsp\\;</td>"
+ echo "<table cellspacing=\"0\" cellpadding=\"0\">" # $++
+ $SED -e "/^<$Q'[Uu]se.'>/!d" \
+ -e "/>[$AZ$az][$AZ$az][$AZ$az][$AZ$az]*:/d" \
+ -e "s|^<$Q'[Uu]se\\(.\\)'>\\([^ ]*\\) \\(.*\\)<$QX>|$_form_|" \
+ -f "$MK_SITE" -e "/<name/!d" \
+ -e "s|<!--use\\(1\\)-->|<tr class=\"listsitemap\\1\"><td>*</td>|" \
+ -e "s|<!--use\\(2\\)-->|<tr class=\"listsitemap\\1\"><td>-</td>|" \
+ -e "s|<!--use\\(.\\)-->|<tr class=\"listsitemap\\1\"><td> </td>|" \
+ -e "/<tr.class=\"listsitemap3\">/s|<name [^<>]*>|&- |" \
+ -e "s|<!--[^<>]*-->| |g" \
+ -e "s|<name href=\"name:sitemap:|<name href=\"|" \
+ -e "s|<name |<td><a |" -e "s|</name>|</a></td>$_tabb_|" \
+ -e "s|<date>|<td><small style=\"date\">|" \
+ -e "s|</date>|</small></td>$_tabb_|" \
+ -e "s|<long>|<td><em><!--long-->|" \
+ -e "s|</long>|<!--/long--></em></td></tr>|" \
+ "$INPUTS" # $++
+ for xx in `grep "^<$Q'use.'>name:sitemap:" $INPUTS` ; do
+ xx=`echo $xx | sed -e "s/^<$Q'use.'>name:sitemap://" -e "s|<$QX>||"`
+ if test -f "$xx" ; then
+ grep "<tr.class=\"listsitemap[$NN]\">" $xx # $++
+ fi
+ done
+ echo "</table>" # $++
+}
+
+_xi_include_=`echo \
+ "<xi:include xmlns:xi=\"http://www.w3.org/2001/XInclude\" parse=\"xml\""`
+make_xmlsitemap ()
+{ # traditional - the body contains a list with date and title extras
+ INPUTS="$1" ; test ".$INPUTS" = "." && INPUTS="$MK_DATA"
+ siteinfo2sitemap > "$MK_SITE" # have <name><long><date> addon-sed
+ _form_="<!--\"\\2\"--><name href=\"\\2\">\\3</name>"
+ _sitefile_=`sed_slash_key "$SITEFILE"`
+ $SED -e "/^<$Q'[Uu]se.'>/!d" \
+ -e "/>[$AZ$az][$AZ$az][$AZ$az][$AZ$az]*:/d" \
+ -e "s|^<$Q'[Uu]se\\(.\\)'>\\([^ ]*\\) \\(.*\\)<$QX>|$_form_|" \
+ -f "$MK_SITE" -e "/<name/!d" \
+ -e "/${_sitefile_}/d" \
+ -e "/${_sitefile_}l/d" \
+ -e "s|\\(href=\"[^<>]*\\)\\.html\\(\"\\)|\\1.xml\\2|g" \
+ -e "s|.*<name|$_xi_include_\\n |" \
+ -e "s|>.*</name>| />|" \
+ "$INPUTS" # $++
+}
+
+print_extension ()
+{
+ ARG="$1" ; test ".$ARG" = "." && ARG="$opt_print"
+ case "$ARG" in
+ -*|.*) echo "$ARG" ;; # $++
+ *) echo ".print" ;; # $++
+ esac
+}
+
+from_sourcefile ()
+{
+ if test -f "$1"
+ then echo "$1"
+ elif test -f "$opt_srcdir/$1"
+ then echo "$opt_srcdir/$1"
+ else echo "$1"
+ fi
+}
+
+html_sourcefile () # generally just cut away the trailing "l" (ell)
+{ # making "page.html" argument into "page.htm" return
+ # (as a new addtion the source may be in ".dbk" xml)
+ _SRCFILE_=`echo "$1" | $SED -e "s/l\\$//"`
+ _XMLFILE_=`echo "$1" | $SED -e "s/\\.html/.dbk/"`
+ if test -f "$_SRCFILE_"
+ then echo "$_SRCFILE_" # $++
+ elif test -f "$_XMLFILE_"
+ then echo "$_XMLFILE_" # $++
+ elif test -f "$opt_src_dir/$_SRCFILE_"
+ then echo "$opt_src_dir/$_SRCFILE_" # $++
+ elif test -f "$opt_src_dir/$_XMLFILE_"
+ then echo "$opt_src_dir/$_XMLFILE_" # $++
+ else echo ".//$_SRCFILE_" # $++ (not found?)
+ fi
+}
+html_printerfile_sourcefile ()
+{
+ if test ".$printerfriendly" = "."
+ then
+ echo "$1" | sed -e "s/l\$//" # $++
+ else
+ _ext_=`print_extension "$printerfriendly"`
+ _ext_=`sed_slash_key "$_ext_"`
+ echo "$1" | sed -e "s/l\$//" -e "s/$_ext_\\([.][$AA]*\\)\$/\\1/" # $++
+ fi
+}
+
+fast_html_printerfile () {
+ x=`html_printerfile "$1"` ; basename "$x" # $++
+# x=`html_printerfile "$1"` ; fast_href "$x" $2 # $++
+}
+
+html_printerfile () # generate the printerfile for a given normal output
+{
+ _ext_=`print_extension "$printerfriendly" | sed -e "s/&/\\\\&/"`
+ echo "$1" | sed -e "s/\\([.][$AA]*\\)\$/$_ext_\\1/" # $++
+}
+
+make_printerfile_fast () # generate s/file.html/file.print.html/ for hrefs
+{ # we do that only for the $FILELIST
+ ALLPAGES="$1" ; # ="$FILELIST"
+ for p in $ALLPAGES ; do
+ a=`sed_slash_key "$p"`
+ b=`html_printerfile "$p"`
+ if test "$b" != "$p" ; then
+ b=`html_printerfile "$p" | sed -e "s:&:\\\\&:g" -e "s:/:\\\\\\/:g"`
+ echo "s/<a href=\"$a\">/<a href=\"$b\">/" # $++
+ echo "s/<a href=\"$a\" /<a href=\"$b\" /" # $++
+ fi
+ done
+}
+
+echo_printsitefile_style ()
+{
+ _bold_="text-decoration : none ; font-weight : bold ; "
+ echo " <style>" # $+++
+ echo " a:link { $_bold_ color : #000060 ; }" # $+++
+ echo " a:visited { $_bold_ color : #000040 ; }" # $+++
+ echo " body { background-color : white ; }" # $+++
+ echo " </style>" # $+++
+}
+
+make_printsitefile_head() # $sitefile
+{
+ echo_printsitefile_style > "$MK_STYLE"
+ $SED -e "/<title>/p" -e "/<title>/d" \
+ -e "/<head>/p" -e "/<head>/d" \
+ -e "/<\/head>/p" -e "/<\/head>/d" \
+ -e "/<body>/p" -e "/<body>/d" \
+ -e "/^.*<link [^<>]*rel=\"shortcut icon\"[^<>]*>.*\$/p" \
+ -e "d" $SITEFILE | $SED -e "/<head>/r $MK_STYLE" # $+++
+}
+
+
+# ------------------------------------------------------------------------
+# The printsitefile is a long text containing html href markups where
+# each of the href lines in the file is being prefixed with the section
+# relation. During a secondary call the printsitefile can grepp'ed for
+# those lines that match a given output fast-file. The result is a
+# navigation header with 1...3 lines matching the nesting level
+
+# these alt-texts will be only visible in with a text-mode browser:
+printsitefile_square="width=\"8\" height=\"8\" border=\"0\""
+printsitefile_img_1="<img alt=\"|go text:\" $printsitefile_square />"
+printsitefile_img_2="<img alt=\"||topics:\" $printsitefile_square />"
+printsitefile_img_3="<img alt=\"|||pages:\" $printsitefile_square />"
+_SECT="mksite:sect:"
+
+echo_current_line () # $sect $extra
+{
+ echo "<!--$_SECT\"$1\"-->$2" # $++
+}
+make_current_entry () # $sect $file ## requires $MK_SITE
+{
+ S="$1" ; R="$2"
+ SSS=`sed_slash_key "$S"`
+ sep=" - " ; _left_=" [ " ; _right_=" ] "
+ echo_current_line "$S" "<!--\"$R\"--><name href=\"$R\">$R</name>$sep" \
+ | $SED -f "$MK_SITE" \
+ -e "s|<!--[^<>]*--><name |<a |" -e "s|</name>|</a>|" \
+ -e "/<a href=\"$SSS\"/s/<a href/$_left_&/" \
+ -e "/<a href=\"$SSS\"/s/<\\/a>/&$_right_/" # $+++
+}
+echo_subpage_line () # $sect $extra
+{
+ echo "<!--$_SECT*:\"$1\"-->$2" # $++
+}
+
+make_subpage_entry ()
+{
+ S="$1" ; R="$2"
+ RR=`sed_slash_key "$R"`
+ sep=" - " ;
+ echo_subpage_line "$S" "<!--\"$R\"--><name href=\"$R\">$R</name>$sep" \
+ | $SED -f "$MK_SITE" \
+ -e "s|<!--[^<>]*--><name |<a |" -e "s|</name>|</a>|" # $+++
+}
+
+make_printsitefile ()
+{
+ # building the printsitefile looks big but its really a loop over sects
+ INPUTS="$1" ; test ".$INPUTS" = "." && INPUTS="$MK_DATA"
+ siteinfo2sitemap > "$MK_SITE" # have <name><long><date> addon-sed
+ if test -d DEBUG && test -f "$MK_SITE"
+ then FFFF=`echo "$F" | sed -e "s,/,:,g"`
+ cp "$MK_DATA" "DEBUG/$FFFF.SITE.tmp.sed"
+ fi
+
+ make_printsitefile_head $SITEFILE # $++
+ sep=" - "
+ _sect1="<a href=\"#.\" title=\"section\">$printsitefile_img_1</a> ||$sep"
+ _sect2="<a href=\"#.\" title=\"topics\">$printsitefile_img_2</a> ||$sep"
+ _sect3="<a href=\"#.\" title=\"pages\">$printsitefile_img_3</a> ||$sep"
+ site_get_rootsections > "$MK_SECT1"
+ # round one - for each root section print a current menu
+ for r in `cat "$MK_SECT1"` ; do
+ echo_current_line "$r" "<!--mksite:sect1:A--><br>$_sect1" # $++
+ for s in `cat "$MK_SECT1"` ; do
+ make_current_entry "$r" "$s" # $++
+ done
+ echo_current_line "$r" "<!--mksite:sect1:Z-->" # $++
+ done # "$r"
+
+ # round two - for each subsection print a current and subpage menu
+ for r in `cat "$MK_SECT1"` ; do
+ site_get_subpages "$r" > "$MK_SECT2"
+ for s in `cat "$MK_SECT2"` ; do test "$r" = "$s" && continue
+ echo_current_line "$s" "<!--mksite:sect2:A--><br>$_sect2" # $++
+ for t in `cat "$MK_SECT2"` ; do test "$r" = "$t" && continue
+ make_current_entry "$s" "$t" # $++
+ done # "$t"
+ echo_current_line "$s" "<!--mksite:sect2:Z-->" # $++
+ done # "$s"
+ _have_children_="0"
+ for t in `cat "$MK_SECT2"` ; do test "$r" = "$t" && continue
+ test "$_have_children_" = "0" && _have_children_="1" && \
+ echo_subpage_line "$r" "<!--mksite:sect2:A--><br>$_sect2" # $++
+ make_subpage_entry "$r" "$t" # $++
+ done # "$t"
+ test "$_have_children_" = "1" && \
+ echo_subpage_line "$r" "<!--mksite:sect2:Z-->" # $++
+ done # "$r"
+
+ # round three - for each subsubsection print a current and subpage menu
+ for r in `cat "$MK_SECT1"` ; do
+ site_get_subpages "$r" > "$MK_SECT2"
+ for s in `cat "$MK_SECT2"` ; do test "$r" = "$s" && continue
+ site_get_subpages "$s" > "$MK_SECT3"
+ for t in `cat "$MK_SECT3"` ; do test "$s" = "$t" && continue
+ echo_current_line "$t" "<!--mksite:sect3:A--><br>$_sect3" # $++
+ for u in `cat "$MK_SECT3"` ; do test "$s" = "$u" && continue
+ make_current_entry "$t" "$u" # $++
+ done # "$u"
+ echo_current_line "$t" "<!--mksite:sect3:Z-->" # $++
+ done # "$t"
+ _have_children_="0"
+ for u in `cat "$MK_SECT3"` ; do test "$u" = "$s" && continue
+ test "$_have_children_" = "0" && _have_children_="1" && \
+ echo_subpage_line "$s" "<!--mksite:sect3:A--><br>$_sect3" # $++
+ make_subpage_entry "$s" "$u" # $++
+ done # "$u"
+ test "$_have_children_" = "1" && \
+ echo_subpage_line "$s" "<!--mksite:sect3:Z-->" # $++
+ done # "$s"
+ done # "$r"
+ echo "<a name=\".\"></a>" # $++
+ echo "</body></html>" # $++
+}
+
+# create a selector that can grep a printsitefile for the matching entries
+select_in_printsitefile () # arg = "page" : return to stdout >> $P.$HEAD
+{
+ _selected_="$1" ; test ".$_selected_" = "." && _selected_="$F"
+ _section_=`sed_slash_key "$_selected_"`
+ echo "s/^<!--$_SECT\"$_section_\"-->//" # sect3
+ echo "s/^<!--$_SECT[*]:\"$_section_\"-->//" # children
+ _selected_=`site_get_parentpage "$_selected_"`
+ _section_=`sed_slash_key "$_selected_"`
+ echo "s/^<!--$_SECT\"$_section_\"-->//" # sect2
+ _selected_=`site_get_parentpage "$_selected_"`
+ _section_=`sed_slash_key "$_selected_"`
+ echo "s/^<!--$_SECT\"$_section_\"-->//" # sect1
+ echo "/^<!--$_SECT\"[^\"]*\"-->/d"
+ echo "/^<!--$_SECT[*]:\"[^\"]*\"-->/d"
+ echo "s/^<!--mksite:sect[$NN]:[$AZ]-->//"
+}
+
+body_for_emailfooter ()
+{
+ test ".$emailfooter" = ".no" && return
+ _email_=`echo "$emailfooter" | sed -e "s|[?].*||"`
+ _dated_=`info_get_entry updated`
+ echo "<hr><table border=\"0\" width=\"100%\"><tr><td>"
+ echo "<a href=\"mailto:$emailfooter\">$_email_</a>"
+ echo "</td><td align=\"right\">"
+ echo "$_dated_</td></tr></table>"
+}
+
+# =================================================================== CSS
+# There was another project to support sitemap build from xml files.
+# The source format was using .dbk+xml with embedded references to .css
+# files for visual preview in a browser. An docbook xml file with semantic
+# outlines is far better suited for quality documentation than any html
+# source. It happens that the xml/css support in browsers is still not
+# very portable - especially embedded css style blocks are a nightmare.
+# Instead we (a) grab all non-html xml markup tags (b) grab all referenced
+# css stylesheets (c) cut out css defs from [b] that are known by [a] and
+# (d) append those to the <style> tag in the output html file as well as
+# (e) reformatting the defs as well as markups from tags to tag classes.
+# Input dbk/htm
+# <?xml-stylesheet type="text/css" href="html.css" ?> <!-- dbk/xml -->
+# <link rel="stylesheet" type="text/css" href="sdocbook.css" /> <!-- xhtml -->
+# <article><para>
+# Using some <command>exe</command>
+# </para></article>
+# Input css:
+# article { .. ; display : block }
+# para { .. ; display : block }
+# command { .. ; display : inline }
+# Output html:
+# <html><style type="text/css">
+# div .article { .. }
+# div .para { .. }
+# span .command { .. }
+# </style>
+# <div class="article"><div class="para>
+# Using some <span class="command">exe</span>
+# </div></div>
+
+css_sourcefile ()
+{
+ if test -f "$1" ; then echo "$1"
+ elif test -f "$opt_src_dir/$1" ; then echo "$opt_src_dir/$1"
+ elif echo "$1" | grep "^/" > $NULL ; then echo "$1"
+ else echo "./$1"
+ fi
+}
+
+css_xmltags () # $SOURCEFILE
+{
+ X=`echo $SOURCEFILE | sed -e "y:/:~:"`
+ S="$SOURCEFILE"
+ cat "$S" | $SED -e "s|>[^<>]*<|><|g" -e "s|^[^<>]*<|<|" \
+ -e "s|>[^<>]*\$|>|" -e "s|<|\\n|g" \
+ | $SED -e "/^\\//d" -e "/^ *\$/d" -e "/>/!d" -e "s|>.*||" \
+ | sort | uniq > "$tmp/$MK.$X.xmltags.tmp.txt"
+}
+
+css_xmlstyles () # $SOURCEFILE
+{
+ X=`echo $SOURCEFILE | sed -e "y:/:~:"`
+ S="$SOURCEFILE"
+ cat "$S" "$SITEFILE" \
+ | sed \
+ -e "s|<link *rel=['\"]*stylesheet|<?xml-stylesheet |" \
+ -e "/<.xml-stylesheet/!d" -e "/href/!N" -e "/href/!N" \
+ -e "s|^.*<.xml-stylesheet||" -e 's|^.*href="||' -e 's|".*||' \
+ | sort | uniq > "$tmp/$MK.$X.xmlstylesheets.tmp.txt"
+}
+
+css_xmlstyles_sed () # $SOURCEFILE
+{
+ X=`echo $SOURCEFILE | sed -e "y:/:~:"`
+ S="$tmp/$MK.$X.xmltags.tmp.txt"
+ R="$tmp/$MK.$X.xmltags.tmp.sed"
+ rm -f "$R"
+ {
+ for x in 1 2 3 4 5 6 7 8 9 ; do echo "/}/d" ; echo "/{/!N" ; done
+ echo "s|\\r||g"
+ $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmltag ; do
+ xmltag=`echo "$xmltag" | sed -e "s/ .*//"`
+ _xmltag=`sed_slash_key "$xmltag"`
+ if echo " title section " | grep " $xmltag " > $NULL ; then
+ test "$xmltag" = "section" && continue;
+ echo "/^ *$_xmltag *[,\\n{]/bfound" >> "$R"
+ echo "/[,\\n] *$_xmltag *[,\\n{]/bfound" >> "$R"
+ $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmlparent ; do
+ xmlparent=`echo "$xmlparent" | sed -e "s/ .*//"`
+ _xmlparent=`sed_slash_key "$xmlparent"`
+ echo "/^ *$_xmlparent *$_xmltag *[,\\n{]/bfound"
+ echo "/[ ,\\n] *$_xmlparent *$_xmltag *[,\\n{]/bfound"
+ done }
+ else
+ echo "/^ *$_xmltag *[ ,\\n{]/bfound"
+ echo "/[ ,\\n] *$_xmltag *[ ,\\n{]/bfound"
+ fi
+ done }
+ echo "d" ; echo ":found"
+ for x in 1 2 3 4 5 6 7 8 9 ; do echo "/}/!N" ; done
+ $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmltag ; do
+ xmltag=`echo "$xmltag" | sed -e "s/ .*//"`
+ if echo " $HTMLTAGS $HTMLTAGS2" | grep " $xmltag " > $NULL ; then
+ continue # keep html tags
+ fi
+ echo "s|^\\( *\\)\\($xmltag *[ ,\\n{]\\)|\\1.\\2|g"
+ echo "s|\\([ ,\\n] *\\)\\($xmltag *[ ,\\n{]\\)|\\1.\\2|g"
+ done }
+ } > "$R"
+}
+
+css_xmltags_css () # $SOURCEFILE
+{
+ X=`echo $SOURCEFILE | sed -e "y:/:~:"`
+ S="$tmp/$MK.$X.xmltags.tmp.sed"
+ R="$tmp/$MK.$X.xmltags.tmp.css"
+ {
+ cat "$tmp/$MK.$X.xmlstylesheets.tmp.txt" | { while read xmlstylesheet ; do
+ stylesheet=`css_sourcefile "$xmlstylesheet"`
+ if test -f "$stylesheet" ; then
+ echo "/* $xmlstylesheet */"
+ cat "$stylesheet" | $SED -f "$S"
+ else
+ error "$xmlstylesheet : ERROR, no such stylesheet"
+ fi
+ done }
+ } > "$R"
+}
+
+css_xmlmapping_sed () # $SOURCEFILE
+{
+ X=`echo $SOURCEFILE | sed -e "y:/:~:"`
+ S="$tmp/$MK.$X.xmltags.tmp.txt"
+ R="$tmp/$MK.$X.xmlmapping.tmp.sed"
+ rm -f "$R"
+ {
+ for x in 1 2 3 4 5 6 7 8 9 ; do echo "/}/d" ; echo "/{/!N" ; done
+ echo "s|\\r||g"
+ $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmltag ; do
+ xmltag=`echo "$xmltag" | sed -e "s/ .*//"`
+ xmltag=`sed_slash_key "$xmltag"`
+ echo "/^ *\\.$xmltag *[ ,\\n{]/bfound"
+ echo "/[ ,\\n] *\\.$xmltag *[,\\n{]/bfound"
+ done }
+ echo "d" ; echo ":found"
+ for x in 1 2 3 4 5 6 7 8 9 ; do echo "/}/!N" ; done
+ echo "s/^/>>/"
+ echo "/[\\n ]display *: *list-item/s|^.*>>|li>>|"
+ echo "/[\\n ]display *: *table-caption/s|^.*>>|caption>>|"
+ echo "/[\\n ]display *: *table-cell/s|^.*>>|td>>|"
+ echo "/[\\n ]display *: *table-row/s|^.*>>|tr>>|"
+ echo "/[\\n ]display *: *table/s|^.*>>|table>>|"
+ echo "/[\\n ]display *: *block/s|^.*>>|div>>|"
+ echo "/[\\n ]display *: *inline/s|^.*>>|span>>|"
+ echo "/[\\n ]display *: *none/s|^.*>>|small>>|"
+ echo "/^div>>.*[\\n ]list-style-type *: *disc/s|^.*>>|ul>>|"
+ echo "/^div>>.*[\\n ]list-style-type *: *decimal/s|^.*>>|ol>>|"
+ echo "/^span>>.*[\\n ]font-family *: *monospace/s|^.*>>|tt>>|"
+ echo "/^span>>.*[\\n ]font-style *: *italic/s|^.*>>|em>>|"
+ echo "/^span>>.*[\\n ]font-weight *: *bold/s|^.*>>|b>>|"
+ echo "/^div>>.*[\\n ]white-space *: *pre/s|^.*>>|pre>>|"
+ echo "/^div>>.*[\\n ]margin-left *: *[$NN]/s|^.*>>|blockquote>>|"
+ $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmltag ; do
+ xmltag=`echo "$xmltag" | sed -e "s/ .*//"`
+ echo "s|^\\(.*\\)>> *\\.$xmltag *[ ,\\n{].*|\\1 .$xmltag|"
+ echo "s|^\\(.*\\)>>.*[ ,\\n] *\\.$xmltag *[ ,\\n{].*|\\1 .$xmltag|"
+ done }
+ echo "s/^div \\.para\$/p .para/"
+ echo "s/^span \\.ulink\$/a .ulink/"
+ } > "$R"
+}
+
+css_xmlmapping () # $SOURCEFILE
+{
+ X=`echo $SOURCEFILE | sed -e "y:/:~:"`
+ cat "$tmp/$MK.$X.xmltags.tmp.css" | \
+ $SED -f "$tmp/$MK.$X.xmlmapping.tmp.sed" \
+ > "$tmp/$MK.$X.xmlmapping.tmp.txt"
+}
+
+css_scan() # $SOURCEFILE
+{
+ css_xmltags
+ css_xmlstyles
+ css_xmlstyles_sed
+ css_xmltags_css
+ css_xmlmapping_sed
+ css_xmlmapping
+}
+
+tags2span_sed() # $SOURCEFILE > $++
+{
+ X=`echo $SOURCEFILE | sed -e "y:/:~:"`
+ S="$tmp/$MK.$X.xmltags.tmp.txt"
+ R="$tmp/$MK.$X.xmltags.tmp.css"
+ echo "s|<[?]xml-stylesheet[^<>]*[?]>||"
+ echo "s|<link *rel=['\"]*stylesheet[^<>]*>||"
+ echo "s|<section[^<>]*>||g"
+ echo "s|</section>||g"
+ $SED "/^[$AZ$az$NN]/!d" "$S" | { while read xmltag ; do
+ # note "xmltag=$xmltag"
+ xmltag=`echo "$xmltag" | sed -e "s/ .*//"`
+ if echo " $HTMLTAGS $HTMLTAGS2" | grep " $xmltag " > $NULL ; then
+ continue # keep html tags
+ fi
+ _xmltag=`sed_slash_key "$xmltag"`
+ _span_=`$SED -e "/ \\.$_xmltag\$/!d" -e "s/ .*//" -e q \
+ < "$tmp/$MK.$X.xmlmapping.tmp.txt"`
+ test ".$_span_" = "." && _span_="span"
+ _xmltag=`sed_piped_key "$xmltag"`
+ echo "s|<$xmltag\\([\\n\\t ][^<>]*\\)url=|<$_span_ class=\"$xmltag\"\\1href=|g"
+ echo "s|<$xmltag\\([\\n\\t >]\\)|<$_span_ class=\"$xmltag\"\\1|g"
+ echo "s|</$xmltag\\([\\n\\t >]\\)|</$_span_\\1|g"
+ done }
+ cat "$tmp/$MK.$X.xmlstylesheets.tmp.txt" | { while read xmlstylesheet ; do
+ if test -f "$xmlstylesheet" ; then
+ R="[^<>]*href=['"'"'"]$xmlstylesheet['"'"'"][^<>]*"
+ echo "s|<[?]xml-stylesheet$R>||"
+ echo "s|<link[^<>]* rel=['"'"'"]*stylesheet['"'"'" ]$R>||"
+ fi
+ done }
+}
+
+tags2meta_sed() # $SOURCEFILE > $++
+{
+ X=`echo $SOURCEFILE | sed -e "y:/:~:"`
+ S="$tmp/$MK.$X.xmlstylesheets.tmp.txt"
+ R="$tmp/$MK.$X.xmltags.tmp.css"
+ cat "$tmp/$MK.$X.xmlstylesheets.tmp.txt" | { while read xmlstylesheet ; do
+ if test -f "$xmlstylesheet" ; then
+ echo " <style type=\"text/css\"><!--"
+ $SED -e "s/^/ /" < "$R"
+ echo " --></style>"
+ break
+ fi
+ done }
+}
+
+# ==========================================================================
+# xml/docbook support is taking an dbk input file converting any html DBK
+# syntax into pure docbook tagging. Each file is being given a docbook
+# doctype so that an xml/docbook viewer can render it correctly - that
+# is needed atleast since docbook files do not embed stylesheet infos.
+# Most of the processing is related to remap html markup and some other
+# shortcut markup into correct docbook markup. The result is NOT checked
+# for being well-formed or even matching the docbook schema DTD at all.
+
+scan_xml_rootnode ()
+{
+ rootnode=`cat "$SOURCEFILE" | \
+ $SED -e "/<[$AZ$az$NN]/!d" -e "s/<\\([$AZ$az$NN]*\\).*/\\1/" -e q`
+ echo "<$Q'root'>$F $rootnode<$QX>" >> "$MK_DATA"
+}
+
+get_xml_rootnode ()
+{
+ _file_=`sed_slash_key "$F"`
+ $SED -e "/^<$Q'root'>$_file_ /!d" \
+ -e "s|.* ||" -e "s|<.*||" -e q "$MK_DATA" # +
+}
+
+xml_sourcefile ()
+{
+ _XMLFILE_=`echo "$1" | $SED -e "s/\\.xml\\$/.dbk/"`
+ _SRCFILE_=`echo "$1" | $SED -e "s/\\.xml\\$/.htm/"`
+ test "$1" = "$_XMLFILE_" && _XMLFILE_="///"
+ test "$1" = "$_SRCFILE_" && _SRCFILE_="///"
+ if test -f "$_XMLFILE_"
+ then echo "$_XMLFILE_" # $++
+ elif test -f "$_SRCFILE_"
+ then echo "$_SRCFILE_" # $++
+ elif test -f "$opt_src_dir/$_XMLFILE_"
+ then echo "$opt_src_dir/$_XMLFILE_" # $++
+ elif test -f "$opt_src_dir/$_SRCFILE_"
+ then echo "$opt_src_dir/$_SRCFILE_" # $++
+ else echo ".//$_XMLFILE_" # $++ (not found?)
+ fi
+}
+
+scan_xmlfile()
+{
+ SOURCEFILE=`xml_sourcefile "$F"`
+ $hint "'$SOURCEFILE': scanning xml -> '$F'"
+ scan_xml_rootnode
+ rootnode=`get_xml_rootnode | sed -e "/^h[$NN]/s|\$| <?section?>|"`
+ $hint "'$SOURCEFILE': rootnode ('$rootnode')"
+}
+
+make_xmlfile()
+{
+ SOURCEFILE=`xml_sourcefile "$F"`
+ X=`echo $SOURCEFILE | sed -e "y:/:~:"`
+ article=`get_xml_rootnode`
+ test ".$article" = "." && article="article"
+ echo '<!DOCTYPE '$article' PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"' \
+ > "$F"
+ echo ' "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">' \
+ >> "$F"
+ cat "$tmp/$MK.$X.xmlstylesheets.tmp.txt" | { while read stylesheet ; do
+ echo "<?xml-stylesheet type=\"text/css\" href=\"$stylesheet\" ?>" \
+ >> "$F"
+ done }
+ __secinfo="\\1<sectioninfo>\\2</sectioninfo>"
+ cat "$SOURCEFILE" | $SED \
+ -e "s!<>!\&nbsp\;!g" \
+ -e "s!\\(&\\)\\(&\\)!\\1amp;\\2amp;!g" \
+ -e "s!\\(<[^<>]*\\)\\(width\\)\\(=\\)\\([$NN]*\%*\\)!\\1\\2\\3\"\\4\"!g" \
+ -e "s!\\(<[^<>]*\\)\\(cellpadding\\)\\(=\\)\\([$NN]*\%*\\)!\\1\\2\\3\"\\4\"!g" \
+ -e "s!\\(<[^<>]*\\)\\(border\\)\\(=\\)\\([$NN]*\%*\\)!\\1\\2\\3\"\\4\"!g" \
+ -e "s!<[?]xml-stylesheet[^<>]*>!!" \
+ -e "s!<link[^<>]* rel=[\'\"]*stylesheet[^<>]*>!!" \
+ -e "s!<[hH][$NN]!<title!g" \
+ -e "s!</[hH][$NN]!</title!g" \
+ -e "s!\\(</title> *\\)\\([^<>]*[$AZ$az$NN][^<>\r\n]*\\)\$!\\1<sub>\\2</sub>!" \
+ -e "s!\\(</title>.*\\)<sub>!\\1<subtitle>!g" \
+ -e "s!\\(</title>.*\\)</sub>!\\1</subtitle>!g" \
+ -e "s!\\(<section>[^<>]*\\)\\(<date>.*</date>[^<>]*\\)\$!\\1<sectioninfo>\\2</sectioninfo>!g" \
+ -e "s!<em>!<emphasis>!g" \
+ -e "s!</em>!</emphasis>!g" \
+ -e "s!<i>!<emphasis>!g" \
+ -e "s!</i>!</emphasis>!g" \
+ -e "s!<b>!<emphasis role=\"bold\">!g" \
+ -e "s!</b>!</emphasis>!g" \
+ -e "s!<u>!<emphasis role=\"underline\">!g" \
+ -e "s!</u>!</emphasis>!g" \
+ -e "s!<big>!<emphasis role=\"strong\">!g" \
+ -e "s!</big>!</emphasis>!g" \
+ -e "s!<\\(strike\\)>!<emphasis role=\"strikethrough\">!g" \
+ -e "s!<\\(s\\)>!<emphasis role=\"strikethrough\">!g" \
+ -e "s!</\\(strike\\)>!</emphasis>!g" \
+ -e "s!</\\(s\\)>!</emphasis>!g" \
+ -e "s!<center>!<blockquote><para>!g" \
+ -e "s!</center>!</para></blockquote>!g" \
+ -e "s!<p align=\\(\"[$AZ$az$NN]*\"\\)>!<para role=\\1>!g" \
+ -e "s!<[pP]>!<para>!g" \
+ -e "s!</[pP]>!</para>!g" \
+ -e "s!<\\(pre\\)>!<screen>!g" \
+ -e "s!<\\(PRE\\)>!<screen>!g" \
+ -e "s!</\\(pre\\)>!</screen>!g" \
+ -e "s!</\\(PRE\\)>!</screen>!g" \
+ -e "s!<a\\( [^<>]*\\)name=\\([^<>]*\\)/>!<anchor \\1id=\\2/>!g" \
+ -e "s!<a\\( [^<>]*\\)name=\\([^<>]*\\)>!<anchor \\1id=\\2/>!g" \
+ -e "s!<a\\( [^<>]*\\)href=!<ulink\\1url=!g" \
+ -e "s!</a>!</ulink>!g" \
+ -e "s! remap=\"url\">[^<>]*</ulink>! />!g" \
+ -e "s!<\\(/*\\)span\\([ ][^<>]*\\)>!<\\1phrase\\2>!g" \
+ -e "s!<\\(/*\\)span>!<\\1phrase>!g" \
+ -e "s!<small\\([ ][^<>]*\\)>!<phrase role=\"small\"\\1>!g" \
+ -e "s!<small>!<phrase role=\"small\">!g" \
+ -e "s!</small>!</phrase>!g" \
+ -e "s!<\\(/*\\)\\(sup\\)>!<\\1superscript>!g" \
+ -e "s!<\\(/*\\)\\(sub\\)>!<\\1subscript>!g" \
+ -e "s!\\(<\\)\\(li\\)\\(><\\)!\\1listitem\\3!g" \
+ -e "s!\\(></\\)\\(li\\)\\(>\\)!\\1listitem\\3!g" \
+ -e "s!\\(<\\)\\(li\\)\\(>\\)!\\1listitem\\3<para>!g" \
+ -e "s!\\(</\\)\\(li\\)\\(>\\)!</para>\\1listitem\\3!g" \
+ -e "s!\\(</*\\)\\(ul\\)>!\\1itemizedlist>!g" \
+ -e "s!\\(</*\\)\\(ol\\)>!\\1orderedlist>!g" \
+ -e "s!\\(</*\\)\\(dl\\)>!\\1variablelist>!g" \
+ -e "s!<\\(/*\\)DT>!<\\1dt>!g" \
+ -e "s!<\\(/*\\)DD>!<\\1dd>!g" \
+ -e "s!<\\(/*\\)DL>!<\\1dl>!g" \
+ -e "s!<BLOCKQUOTE>!<blockquote><para>!g" \
+ -e "s!</BLOCKQUOTE>!</para></blockquote>!g" \
+ -e "s!<\\(/*\\)dl>!<\\1variablelist>!g" \
+ -e "s!<dt\\( [^<>]*\\)>!<varlistentry\\1><term>!g" \
+ -e "s!<dt>!<varlistentry><term>!g" \
+ -e "s!</dt>!</term>!g" \
+ -e "s!<dd\\( [^<>]*\\)><!<listitem\\1><!g" \
+ -e "s!<dd><!<listitem><!g" \
+ -e "s!></dd>!></listitem></varlistentry>!g" \
+ -e "s!<dd\\( [^<>]*\\)>!<listitem\\1><para>!g" \
+ -e "s!<dd>!<listitem><para>!g" \
+ -e "s!</dd>!</para></listitem></varlistentry>!g" \
+ -e "s!<table[^<>]*><tr><td>\\(<table[^<>]*>\\)!\\1!" \
+ -e "s!\\(</table>\\)</td></tr></table>!\\1!" \
+ -e "s!<table\\( [^<>]*\\)>!<informaltable\\1><tgroup cols=\"2\"><tbody>!g" \
+ -e "s!<table>!<informaltable><tgroup cols=\"2\"><tbody>!g" \
+ -e "s!</table>!</tbody></tgroup></informaltable>!g" \
+ -e "s!\\(</*\\)tr\\([ ][^<>]*\\)>!\\1row\\2>!g" \
+ -e "s!\\(</*\\)tr>!\\1row>!g" \
+ -e "s!\\(</*\\)td\\([ ][^<>]*\\)>!\\1entry\\2>!g" \
+ -e "s!\\(</*\\)td>!\\1entry>!g" \
+ -e "s!\\(<informaltable[^<>]*[ ]width=\"100\%\"\\)!\\1 pgwide=\"1\"!g" \
+ -e "s!\\(<tgroup[<>]*[ ]cols=\"2\">\\)\\(<tbody>\\)!\\1<colspec colwidth=\"1*\" /><colspec colwidth=\"1*\" />\\2!g" \
+ -e "s!\\(<entry[^<>]*[ ]\\)width=\\(\"[$NN]*\%*\"\\)!\\1remap=\\2!g" \
+ -e "s!<nobr>\\([\'\`]*\\)<tt>!<cmdsynopsis><command>\\1!g" \
+ -e "s!</tt>\\([\'\`]*\\)</nobr>!\\1</command></cmdsynopsis>!g" \
+ -e "s!<nobr><\\(code\\)>\\([\`\"\']\\)!<cmdsynopsis><command>\\2!g" \
+ -e "s!<\\(code\\)><nobr>\\([\`\"\']\\)!<cmdsynopsis><command>\\2!g" \
+ -e "s!\\([\`\"\']\\)</\\(code\\)></nobr>!\\1</command></cmdsynopsis>!g" \
+ -e "s!\\([\`\"\']\\)</nobr></\\(code\\)>!\\1</command></cmdsynopsis>!g" \
+ -e "s!<nobr><\\(tt\\)>\\([\`\"\']\\)!<cmdsynopsis><command>\\2!g" \
+ -e "s!<\\(tt\\)><nobr>\\([\`\"\']\\)!<cmdsynopsis><command>\\2!g" \
+ -e "s!\\([\`\"\']\\)</\\(tt\\)></nobr>!\\1</command></cmdsynopsis>!g" \
+ -e "s!\\([\`\"\']\\)</nobr></\\(tt\\)>!\\1</command></cmdsynopsis>!g" \
+ -e "s!\\(</*\\)tt>!\\1constant>!g" \
+ -e "s!\\(</*\\)code>!\\1literal>!g" \
+ -e "s!<br>!<br />!g" \
+ -e "s!<br */>!<screen role=\"linebreak\">\n</screen>!g" \
+ >> "$F"
+ echo "'$SOURCEFILE': " `ls -s $SOURCEFILE` ">>" `ls -s $F`
+}
+
+make_xmlmaster ()
+{
+ SOURCEFILE=`xml_sourcefile "$F"`
+ X=`echo $SOURCEFILE | sed -e "y:/:~:"`
+ article="section" # book? chapter?
+ echo '<!DOCTYPE' $article 'PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"' >$F
+ echo ' "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">' >>$F
+ cat "$tmp/$MK.$X.xmlstylesheets.tmp.txt" | { while read stylesheet ; do
+ echo "<?xml-stylesheet type=\"text/css\" href=\"$stylesheet\" ?>" \
+ >> "$F"
+ done }
+ echo "<section><title>Documentation</title>" >>$F
+ make_xmlsitemap >> $F
+ echo "</section>" >> $F
+ echo "'$SOURCEFILE': " `ls -s $SOURCEFILE` ">*>" `ls -s $F`
+}
+
+# ==========================================================================
+#
+# During processing we will create a series of intermediate files that
+# store relations. They all have the same format being
+# =relationtype=key value
+# where key is usually s filename or an anchor. For mere convenience
+# we assume that the source html text does not have lines that start
+# off with =xxxx= (btw, ye remember perl section notation...). Of course
+# any other format would be usuable as well.
+#
+
+# we scan the SITEFILE for href references to be converted
+# - in the new variant we use a ".gets.tmp" sed script that SECTS
+# marks all interesting lines so they can be checked later
+# with an sed anchor of sect="[$NN]" (or sect="[$AZ]")
+S="\\&nbsp\\;"
+# S="[&]nbsp[;]"
+
+# HR and EM style markups must exist in input - BR sometimes left out
+# these routines in(ter)ject hardspace before, between, after markups
+# note that "<br>" is sometimes used with HR - it must exist in input
+echo_HR_EM_PP ()
+{
+ echo "s%^\\($1$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\(<>$1$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\($S$1$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\($1<>$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\($1$S$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\($1$2<>$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\($1$2$S$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+}
+
+echo_br_EM_PP ()
+{
+ echo_HR_EM_PP "$1" "$2" "$3" "$4"
+ echo "s%^\\($2$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\(<>$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\($S$2$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\($2<>$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\($2$S$3*<a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\($2$3*<><a\\) \\(href=\\)%\\1 $4 \\2%"
+ echo "s%^\\($2$3*$S<a\\) \\(href=\\)%\\1 $4 \\2%"
+}
+
+echo_HR_PP ()
+{
+ echo "s%^\\($1<a\\) \\(href=\\)%\\1 $3 \\2%"
+ echo "s%^\\($1$2*<a\\) \\(href=\\)%\\1 $3 \\2%"
+ echo "s%^\\(<>$1$2*<a\\) \\(href=\\)%\\1 $3 \\2%"
+ echo "s%^\\($S$1$2*<a\\) \\(href=\\)%\\1 $3 \\2%"
+ echo "s%^\\($1<>$2*<a\\) \\(href=\\)%\\1 $3 \\2%"
+ echo "s%^\\($1$S$2*<a\\) \\(href=\\)%\\1 $3 \\2%"
+}
+echo_br_PP ()
+{
+ echo_HR_PP "$1" "$2" "$3"
+ echo "s%^\\($2*<a\\) \\(href=\\)%\\1 $3 \\2%"
+ echo "s%^\\(<>$2*<a\\) \\(href=\\)%\\1 $3 \\2%"
+ echo "s%^\\($S$2*<a\\) \\(href=\\)%\\1 $3 \\2%"
+}
+echo_sp_PP ()
+{
+ echo "s%^\\(<>$1*<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($S$1*<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\(<><>$1*<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($S$S$1*<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\(<>$1<>*<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($S$1$S*<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1<><>*<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1$S$S*<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1<>*<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1$S*<a\\) \\(href=\\)%\\1 $2 \\2%"
+}
+
+echo_sp_SP ()
+{
+ echo "s%^\\($1<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\(<>$1<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($S$1<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\(<><>$1<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($S$S$1<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\(<>$1<><a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($S$1$S<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1<><><a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1$S$S<a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1<><a\\) \\(href=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1$S<a\\) \\(href=\\)%\\1 $2 \\2%"
+}
+
+echo_sp_sp ()
+{
+ echo "s%^\\($1<a\\) \\(name=\\)%\\1 $2 \\2%"
+ echo "s%^\\(<>$1<a\\) \\(name=\\)%\\1 $2 \\2%"
+ echo "s%^\\($S$1<a\\) \\(name=\\)%\\1 $2 \\2%"
+ echo "s%^\\(<><>$1<a\\) \\(name=\\)%\\1 $2 \\2%"
+ echo "s%^\\($S$S$1<a\\) \\(name=\\)%\\1 $2 \\2%"
+ echo "s%^\\(<>$1<><a\\) \\(name=\\)%\\1 $2 \\2%"
+ echo "s%^\\($S$1$S<a\\) \\(name=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1<><><a\\) \\(name=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1$S$S<a\\) \\(name=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1<><a\\) \\(name=\\)%\\1 $2 \\2%"
+ echo "s%^\\($1$S<a\\) \\(name=\\)%\\1 $2 \\2%"
+}
+
+make_sitemap_init()
+{
+ # build a list of detectors that map site.htm entries to a section table
+ # note that the resulting .gets.tmp / .puts.tmp are real sed-script
+ h1="[-$AP$AK]"
+ b1="[*=]"
+ b2="[-$AP$AK]"
+ b3="[:/]"
+ q3="[:/,$AK]"
+ echo_HR_PP "<hr>" "$h1" "sect=\"1\"" > "$MK_GETS"
+ echo_HR_EM_PP "<hr>" "<em>" "$h1" "sect=\"1\"" >> "$MK_GETS"
+ echo_HR_EM_PP "<hr>" "<strong>" "$h1" "sect=\"1\"" >> "$MK_GETS"
+ echo_HR_PP "<br>" "$b1$b1" "sect=\"1\"" >> "$MK_GETS"
+ echo_HR_PP "<br>" "$b2$b2" "sect=\"2\"" >> "$MK_GETS"
+ echo_HR_PP "<br>" "$b3$b3" "sect=\"3\"" >> "$MK_GETS"
+ echo_br_PP "<br>" "$b2$b2" "sect=\"2\"" >> "$MK_GETS"
+ echo_br_PP "<br>" "$b3$b3" "sect=\"3\"" >> "$MK_GETS"
+ echo_br_EM_PP "<br>" "<small>" "$q3" "sect=\"3\"" >> "$MK_GETS"
+ echo_br_EM_PP "<br>" "<em>" "$q3" "sect=\"3\"" >> "$MK_GETS"
+ echo_br_EM_PP "<br>" "<u>" "$q3" "sect=\"3\"" >> "$MK_GETS"
+ echo_HR_PP "<br>" "$q3" "sect=\"3\"" >> "$MK_GETS"
+ echo_br_PP "<u>" "$b2" "sect=\"2\"" >> "$MK_GETS"
+ echo_sp_PP "$q3" "sect=\"3\"" >> "$MK_GETS"
+ echo_sp_SP "" "sect=\"2\"" >> "$MK_GETS"
+ echo_sp_sp "$q3" "sect=\"9\"" >> "$MK_GETS"
+ echo_sp_sp "<br>" "sect=\"9\"" >> "$MK_GETS"
+ $SED -e "s/\\(>\\)\\(\\[\\)/\\1 *\\2/" "$MK_GETS" > "$MK_PUTS"
+ # the .puts.tmp variant is used to <b><a href=..></b> some hrefs which
+ # shall not be used otherwise for being generated - this is nice for
+ # some quicklinks somewhere. The difference: a whitspace "<hr> <a...>"
+ echo "" > "$MK_DATA" # fresh start
+}
+
+_uses_="<$Q'use\\1'>\\2 \\3<$QX>"
+_name_="<$Q'use\\1'>name:\\2 \\3<$QX>" ;
+
+make_sitemap_list()
+{
+ _sitefile_="$1" ; test ".$_sitefile_" = "." && _sitefile_="$SITEFILE"
+ # scan sitefile for references pages - store as "=use+=href+ anchortext"
+ $SED -f "$MK_GETS" -e "/<a sect=\"[$NN]\"/!d" \
+ -e "s|.*<a sect=\"\\([^\"]*\\)\" href=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)</a>.*|$_uses_|" \
+ -e "s|.*<a sect=\"\\([^\"]*\\)\" name=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)</a>.*|$_name_|" \
+ -e "s|.*<a sect=\"\\([^\"]*\\)\" name=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)|$_name_|" \
+ -e "/^<$Q/!d" -e "/^<!/d" \
+ "$_sitefile_" >> "$MK_DATA"
+}
+
+_Uses_="<$Q'Use\\1'>\\2 \\3<$QX>"
+_Name_="<$Q'Use\\1'>name:\\2 \\3<$QX>" ;
+
+make_subsitemap_list()
+{
+ _sitefile_="$1" ; test ".$_sitefile_" = "." && _sitefile_="$SITEFILE"
+ # scan sitefile for references pages - store as "=use+=href+ anchortext"
+ $SED -f "$MK_GETS" -e "/<a sect=\"[$NN]\"/!d" \
+ -e "s|.*<a sect=\"\\([^\"]*\\)\" href=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)</a>.*|$_Uses_|" \
+ -e "s|.*<a sect=\"\\([^\"]*\\)\" name=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)</a>.*|$_Name_|" \
+ -e "s|.*<a sect=\"\\([^\"]*\\)\" name=\"\\([^\"]*\\)\"[^<>]*>\\(.*\\)|$_Name_|" \
+ -e "/^<$Q/!d" -e "/^<!/d" \
+ -e "s|>\\([^:./][^:./]*[./]\\)|>$2\\1|" \
+ "$_sitefile_" >> "$MK_DATA"
+}
+
+make_sitemap_sect()
+{
+ # scan used pages and store prime section group relation 'sect' and 'node'
+ # (A) each "use1" creates "'sect'>href+ href1" for all following non-"use1"
+ # (B) each "use1" creates "'node'>href2 href1" for all following "use2"
+ $SED -e "/^<$Q'use.'>/!d" \
+ -e "/^<$Q'use1'>/{" \
+ -e "h" -e "s|^<$Q'use1'>\\([^ ]*\\) .*|\\1|" \
+ -e "x" -e "}" \
+ -e "s|^<$Q'use.'>\\([^ ]*\\) .*|<$Q'sect'>\\1|" \
+ -e G -e "s|\\n| |" -e "s|\$|<$QX>|" "$MK_DATA" >> "$MK_DATA"
+ $SED -e "/^<$Q'use.'>/!d" \
+ -e "/^<$Q'use1'>/{" \
+ -e "h" -e "s|^<$Q'use1'>\\([^ ]*\\) .*|\\1|" \
+ -e "x" -e "}" \
+ -e "/^<$Q'use[13456789]'>/d" \
+ -e "s|<$Q'use.'>\\([^ ]*\\) .*|<$Q'node'>\\1|" \
+ -e G -e "s|\\n| |" -e "s|\$|<$QX>|" "$MK_DATA" >> "$MK_DATA"
+}
+
+make_sitemap_page()
+{
+ # scan used pages and store secondary group relation 'page' and 'node'
+ # the parenting 'node' for use3 is usually a use2 (or use1 if none there)
+ $SED -e "/^<$Q'use.'>/!d" \
+ -e "/^<$Q'use1'>/{" \
+ -e "h" -e "s|^<$Q'use1'>\\([^ ]*\\) .*|\\1|" \
+ -e "x" -e "}" \
+ -e "/^<$Q'use2'>/{" \
+ -e "h" -e "s|^<$Q'use2'>\\([^ ]*\\) .*|\\1|" \
+ -e "x" -e "}" \
+ -e "/^<$Q'use1'>/d" \
+ -e "s|^<$Q'use.'>\\([^ ]*\\) .*|<$Q'page'>\\1<$QX>|" \
+ -e G -e "s|\\n| |" "$MK_DATA" >> "$MK_DATA"
+ $SED -e "/^<$Q'use.'>/!d" \
+ -e "/^<$Q'use1'>/{" \
+ -e "h" -e "s|^<$Q'use1'>\\([^ ]*\\) .*|\\1|" \
+ -e "x" -e "}" \
+ -e "/^<$Q'use2'>/{" \
+ -e "h" -e "s|^<$Q'use2'>\\([^ ]*\\) .*|\\1|" \
+ -e "x" -e "}" \
+ -e "/^<$Q'use[12456789]'>/d" \
+ -e "s|^<$Q'use.'>\\([^ ]*\\) .*|<$Q'node'>\\1<$QX>|" \
+ -e G -e "s|\\n| |" "$MK_DATA" >> "$MK_DATA"
+ # and for the root sections we register ".." as the parenting group
+ $SED -e "/^<$Q'use1'>/!d" \
+ -e "s|^<$Q'use.'>\\([^ ]*\\) .*|<$Q'node'>\\1 ..<$QX>|" "$MK_DATA" >> "$MK_DATA"
+}
+
+echo_site_filelist()
+{
+ $SED -e "/^<$Q'use.'>/!d" \
+ -e "s|^<$Q'use.'>||" -e "s| .*||" "$MK_DATA"
+}
+
+# ==========================================================================
+# originally this was a one-pass compiler but the more information
+# we were scanning out the more slower the system ran - since we
+# were rescanning files for things like section information. Now
+# we scan the files first for global information.
+# 1.PASS
+
+scan_sitefile () # $F
+{
+ SOURCEFILE=`html_sourcefile "$F"`
+ $hint "'$SOURCEFILE': scanning -> sitefile"
+ if test "$SOURCEFILE" != "$F" ; then
+ dx_init "$F"
+ dx_text today "`timetoday`"
+ short=`echo "$F" | $SED -e "s:.*/::" -e "s:[.].*::"` # basename for all exts
+ short="$short ~"
+ DC_meta title "$short"
+ DC_meta date.available "`timetoday`"
+ DC_meta subject sitemap
+ DC_meta DCMIType Collection
+ DC_VARS_Of "$SOURCEFILE" ; HTTP_VARS_Of "$SOURCEFILE"
+ DC_modified "$SOURCEFILE" ; DC_date "$SOURCEFILE"
+ DC_section "$F"
+ DX_text date.formatted `timetoday`
+ test ".$printerfriendly" != "." && \
+ DX_text "printerfriendly" `fast_html_printerfile "$F"`
+ test ".$USER" != "." && DC_publisher "$USER"
+ echo "'$SOURCEFILE': $short (sitemap)"
+ site_map_list_title "$F" "$short"
+ site_map_long_title "$F" "generated sitemap index"
+ site_map_list_date "$F" "`timetoday`"
+ fi
+}
+
+scan_htmlfile() # "$F"
+{
+ SOURCEFILE=`html_sourcefile "$F"` # SCAN :
+ $hint "'$SOURCEFILE': scanning -> $F" # HTML :
+ if test "$SOURCEFILE" != "$F" ; then :
+ if test -f "$SOURCEFILE" ; then
+ dx_init "$F"
+ dx_text today "`timetoday`"
+ dx_text todays "`timetodays`"
+ DC_VARS_Of "$SOURCEFILE" ; HTTP_VARS_Of "$SOURCEFILE"
+ DC_title "$SOURCEFILE"
+ DC_isFormatOf "$SOURCEFILE"
+ DC_modified "$SOURCEFILE" ; DC_date "$SOURCEFILE" ; DC_date "$SITEFILE"
+ DC_section "$F" ; DC_selected "$F" ; DX_alternative "$SOURCEFILE"
+ test ".$USER" != "." && DC_publisher "$USER"
+ DX_text date.formatted "`timetoday`"
+ test ".$printerfriendly" != "." && \
+ DX_text "printerfriendly" `fast_html_printerfile "$F"`
+ sectn=`info_get_entry DC.relation.section`
+ short=`info_get_entry DC.title.selected`
+ site_map_list_title "$F" "$short"
+ info_map_list_title "$F" "$short"
+ title=`info_get_entry DC.title`
+ site_map_long_title "$F" "$title"
+ info_map_long_title "$F" "$title"
+ edate=`info_get_entry DC.date`
+ issue=`info_get_entry issue`
+ site_map_list_date "$F" "$edate"
+ info_map_list_date "$F" "$edate"
+ css_scan
+ echo "'$SOURCEFILE': '$title' ('$short') @ '$issue' ('$sectn')"
+ else
+ echo "'$SOURCEFILE': does not exist"
+ site_map_list_title "$F" "$F"
+ site_map_long_title "$F" "$F (no source)"
+ fi ; else
+ echo "<$F> - skipped"
+ fi
+}
+
+scan_subsitemap_long ()
+{
+ grep "<a href=\"[^\"]*\">" "$1" | {
+ while read _line_ ; do
+ _href_=`echo "$_line_" | $SED -e "s|.*<a href=\"\\([^\"]*\\)\">.*|\\1|"`
+ _date_=`echo "$_line_" | $SED -e "s|.*<small style=\"date\">\\([^<>]*\\)</small>.*|\\1|" -e "/<a href=\"[^\"]*\">/d"`
+ _long_=`echo "$_line_" | $SED -e "s|.*<!--long-->\\([^<>]*\\)<!--/long-->.*|\\1|" -e "/<a href=\"[^\"]*\">/d"`
+ if test ".$_href_" != "." && test ".$_date_" != "." ; then
+ site_map_list_date "$2$_href_" "$_date_"
+ fi
+ if test ".$_href_" != "." && test ".$_long_" != "." ; then
+ site_map_long_title "$2$_href_" "$_long_"
+ fi
+ done
+ }
+}
+
+scan_namespec ()
+{
+ # nothing so far
+ case "$1" in
+ name:sitemap:*)
+ short=`echo "$F" | $SED -e "s:.*/::" -e "s:[.].*::"`
+ short=`echo "$short ~" | $SED -e "s/name:sitemap://"`
+ site_map_list_title "$F" "$short"
+ site_map_long_title "$F" "external sitemap index"
+ site_map_list_date "$F" "`timetoday`"
+ echo "'$F' external sitemap index$n"
+ ;;
+ name:*.htm|name:*.html)
+ FF=`echo "$1" | $SED -e "s|name:||"`
+ FFF=`echo "$FF" | $SED -e "s|/[^/]*\$|/|"` # dirname
+ case "$FFF" in */*) : ;; *) FFF="" ;; esac
+ make_subsitemap_list "$FF" "$FFF"
+ scan_subsitemap_long "$FF" "$FFF"
+ ;;
+ esac
+}
+scan_httpspec ()
+{
+ # nothing so far
+ return;
+}
+
+skip_namespec ()
+{
+ # nothing so far
+ return;
+}
+skip_httpspec ()
+{
+ # nothing so far
+ return;
+}
+
+# ==========================================================================
+# and now generate the output pages
+# 2.PASS
+
+head_sed_sitemap() # $filename $section
+{
+ FF=`sed_piped_key "$1"`
+ SECTION=`sed_slash_key "$2"`
+ SECTS="sect=\"[$NN$AZ]\"" ; SECTN="sect=\"[$NN]\"" # lines with hrefs
+ echo "s|\\(<a $SECTS href=\"$FF\">.*</a>\\)|<b>\\1</b>|" # $++
+ test ".$sectiontab" != ".no" && \
+ echo "/ href=\"$SECTION\"/s|^<td class=\"[^\"]*\"|<td |" # $++
+}
+
+head_sed_listsection() # $filename $section
+{
+ # traditional.... the sitefile is the full navigation bar
+ FF=`sed_piped_key "$1"`
+ SECTION=`sed_slash_key "$2"`
+ SECTS="sect=\"[$NN$AZ]\"" ; SECTN="sect=\"[$NN]\"" # lines with hrefs
+ echo "s|\\(<a $SECTS href=\"$FF\">.*</a>\\)|<b>\\1</b>|" # $++
+ test ".$sectiontab" != ".no" && \
+ echo "/ href=\"$SECTION\"/s|^<td class=\"[^\"]*\"|<td |" # $++
+}
+
+head_sed_multisection() # $filename $section
+{
+ # sitefile navigation bar is split into sections
+ FF=`sed_piped_key "$1"`
+ SECTION=`sed_slash_key "$2"`
+ SECTS="sect=\"[$NN$AZ]\"" ; SECTN="sect=\"[$NN]\"" # lines with hrefs
+ # grep all pages with a class='sect' relation to current $SECTION and
+ # build foreach an sed line "s|$SECTS\(<a href=$F>\)|<!--sectX-->\1|"
+ # after that all the (still) numeric SECTNs are deactivated / killed.
+ for section in $SECTION $headsection $tailsection ; do
+ test ".$section" = ".no" && continue
+ $SED -e "/^<$Q'sect'>[^ ]* $section/!d" \
+ -e "s|<$Q'sect'>||" -e "s| .*||" \
+ -e "s/.*/s|<a $SECTS \\\\(href=\"&\"\\\\)|<a sect=\"X\" \\\\1|/" \
+ "$MK_DATA" # $++
+ $SED -e "/^<$Q'sect'>name:[^ ]* $section/!d" \
+ -e "s|<$Q'sect'>name:||" -e "s| .*||" \
+ -e "s/.*/s|<a $SECTS \\\\(name=\"&\"\\\\)|<a sect=\"X\" \\\\1|/" \
+ "$MK_DATA" # $++
+ done
+ echo "s|.*<a \\($SECTN href=[^<>]*\\)>.*|<!-- \\1 -->|" # $++
+ echo "s|.*<a \\($SECTN name=[^<>]*\\)>.*|<!-- \\1 -->|" # $++
+ echo "s|\\(<a $SECTS href=\"$FF\">\\)|<b>\\1</b>|" # $++
+ test ".$sectiontab" != ".no" && \
+ echo "/ href=\"$SECTION\"/s|^<td class=\"[^\"]*\"|<td |" # $++
+}
+
+make_sitefile () # "$F"
+{
+ SOURCEFILE=`html_sourcefile "$F"`
+ if test "$SOURCEFILE" != "$F" ; then
+ if test -f "$SOURCEFILE" ; then
+ # remember that in this case "${SITEFILE}l" = "$F" = "${SOURCEFILE}l"
+ info2vars_sed > $MK_VARS # have <!--title--> vars substituted
+ info2meta_sed > $MK_META # add <meta name="DC.title"> values
+ F_HEAD="$tmp/$F.$HEAD" ; F_FOOT="$tmp/$F.$FOOT"
+ $CAT "$MK_PUTS" > "$F_HEAD"
+ head_sed_sitemap "$F" "`info_get_entry_section`" >> "$F_HEAD"
+ echo "/<head>/r $MK_META" >> "$F_HEAD"
+ $CAT "$MK_VARS" "$MK_TAGS" >> "$F_HEAD"
+ echo "/<\\/body>/d" >> "$F_HEAD"
+ case "$sitemaplayout" in
+ multi) make_multisitemap > "$F_FOOT" ;; # here we use ~foot~ to
+ *) make_listsitemap > "$F_FOOT" ;; # hold the main text
+ esac
+
+ mkpathfile "$F"
+ $SED_LONGSCRIPT "$F_HEAD" "$SITEFILE" > $F # ~head~
+ $CAT "$F_FOOT" >> $F # ~body~
+ $SED -e "/<\\/body>/!d" -f "$MK_VARS" "$SITEFILE" >> $F #</body>
+ echo "'$SOURCEFILE': " `ls -s $SOURCEFILE` ">->" `ls -s $F` "(sitemap)"
+ else
+ echo "'$SOURCEFILE': does not exist"
+ fi fi
+}
+
+make_htmlfile() # "$F"
+{
+ SOURCEFILE=`html_sourcefile "$F"` # 2.PASS
+ if test "$SOURCEFILE" != "$F" ; then
+ if test -f "$SOURCEFILE" ; then
+ if grep '<meta name="formatter"' "$SOURCEFILE" > $NULL ; then
+ echo "'$SOURCEFILE': SKIP, this sourcefile looks like a formatted file"
+ echo "'$SOURCEFILE': (may be a sourcefile in place of a targetfile?)"
+ return
+ fi
+ info2vars_sed > $MK_VARS # have <!--$title--> vars substituted
+ info2meta_sed > $MK_META # add <meta name="DC.title"> values
+ tags2span_sed > $MK_SPAN # extern text/css -> intern css classes
+ tags2meta_sed >>$MK_META # extern text/css -> intern css classes
+ F_HEAD="$tmp/$F.$HEAD" ; F_BODY="$tmp/$F.$BODY" ; F_FOOT="$tmp/$F.$FOOT"
+ $CAT "$MK_PUTS" > "$F_HEAD"
+ case "$sectionlayout" in
+ multi) head_sed_multisection "$F" "`info_get_entry_section`" >> "$F_HEAD" ;;
+ *) head_sed_listsection "$F" "`info_get_entry_section`" >> "$F_HEAD" ;;
+ esac
+ $CAT "$MK_VARS" "$MK_TAGS" "$MK_SPAN" >> "$F_HEAD" #tag and vars
+ echo "/<\\/body>/d" >> "$F_HEAD" #cut lastline
+ echo "/<head>/r $MK_META" >> "$F_HEAD" #add metatags
+ echo "/<title>/d" > "$F_BODY" #not that line
+ $CAT "$MK_VARS" "$MK_TAGS" "$MK_SPAN" >> "$F_BODY" #tag and vars
+ bodymaker_for_sectioninfo >> "$F_BODY" #if sectioninfo
+ info2body_sed >> "$F_BODY" #cut early
+ info2head_sed >> "$F_HEAD"
+ make_back_path "$F" >> "$F_HEAD"
+ test ".$emailfooter" != ".no" && \
+ body_for_emailfooter > "$F_FOOT"
+
+ mkpathfile "$F"
+ $SED_LONGSCRIPT "$F_HEAD" $SITEFILE > $F # ~head~
+ $SED_LONGSCRIPT "$F_BODY" $SOURCEFILE >> $F # ~body~
+ test -f "$F_FOOT" && $CAT "$F_FOOT" >> $F # ~foot~
+ $SED -e "/<\\/body>/!d" -f "$MK_VARS" "$SITEFILE" >> $F #</body>
+ echo "'$SOURCEFILE': " `ls -s $SOURCEFILE` "->" `ls -s $F`
+ else # test -f $SOURDEFILE
+ echo "'$SOURCEFILE': does not exist"
+ fi ; else
+ echo "<$F> - skipped"
+ fi
+}
+
+make_printerfriendly () # "$F"
+{ # PRINTER
+ printsitefile="0" # FRIENDLY
+ P=`html_printerfile "$F"`
+ P_HEAD="$tmp/$P.$HEAD"
+ P_BODY="$tmp/$P.$BODY"
+ case "$F" in
+ ${SITEFILE}|${SITEFILE}l)
+ printsitefile=">=>" ; BODY_TXT="$tmp/$F.$FOOT" ;;
+ *.html) printsitefile="=>" ; BODY_TXT="$SOURCEFILE" ;;
+ esac
+ if grep '<meta name="formatter"' "$BODY_TXT" > $NULL ; then return; fi
+ if test ".$printsitefile" != ".0" && test -f "$SOURCEFILE" ; then
+ make_printerfile_fast "$FILELIST" > ./$MK_FAST
+ $CAT "$MK_VARS" "$MK_TAGS" "$MK_FAST" > "$P_HEAD"
+ $SED -e "/DC.relation.isFormatOf/s|content=\"[^\"]*\"|content=\"$F\"|" \
+ "$MK_META" > "$MK_METT"
+ echo "/<head>/r $MK_METT" >> "$P_HEAD" # meta
+ echo "/<\\/body>/d" >> "$P_HEAD"
+ select_in_printsitefile "$F" >> "$P_HEAD"
+ _ext_=`print_extension "$printerfriendly"` # head-
+ # line_=`sed_slash_key "$printsitefile_img_2"` # back-
+ echo "/||topics:/s| href=\"[#][.]\"| href=\"$F\"|" >> "$P_HEAD"
+ echo "/|||pages:/s| href=\"[#][.]\"| href=\"$F\"|" >> "$P_HEAD"
+ make_back_path "$F" >> "$P_HEAD"
+ $CAT "$MK_VARS" "$MK_TAGS" "$MK_FAST" > "$P_BODY"
+ make_back_path "$F" >> "$P_BODY"
+
+ mkpathfile "$P"
+ $SED_LONGSCRIPT "$P_HEAD" $PRINTSITEFILE > $P # ~head~
+ $SED_LONGSCRIPT "$P_BODY" $BODY_TXT >> $P # ~body~
+ $SED -e "/<\\/body>/!d" -f $MK_VARS $PRINTSITEFILE >> $P #</body>
+ echo "'$SOURCEFILE': " `ls -s $SOURCEFILE` "$printsitefile" `ls -s $P`
+ fi
+}
+
+
+# ========================================================================
+# ========================================================================
+# ========================================================================
+
+# ========================================================================
+# #### 0. INIT
+make_sitemap_init
+make_sitemap_list
+make_sitemap_sect
+make_sitemap_page
+
+if test -d DEBUG && test -f "$MK_DATA"
+then FFFF=`echo "$F" | sed -e "s,/,:,g"`
+ cp "$MK_DATA" "DEBUG/$FFFF.DATA.tmp.htm"
+fi
+
+FILELIST=`echo_site_filelist`
+if test ".$opt_filelist" != "." || test ".$opt_list" = ".file"; then
+ for F in $FILELIST; do echo "$F" ; done ; exit # --filelist
+fi
+if test ".$opt_files" != "." ; then FILELIST="$opt_files" ; fi # --files
+if test ".$FILELIST" = "."; then warn "nothing to do (no --filelist)" ; fi
+if test ".$FILELIST" = ".SITEFILE" ; then warn "only '$SITEFILE'?!" ; fi
+
+for F in $FILELIST ; do case "$F" in #### 1. PASS
+name:*) scan_namespec "$F" ;;
+http:*|https:*|ftp:*|mailto:*|telnet:*|news:*|gopher:*|wais:*)
+ scan_httpspec "$F" ;;
+${SITEFILE}|${SITEFILE}l) scan_sitefile "$F" ;; # ........... SCAN SITE
+*@*.de)
+ echo "!! -> '$F' (skipping malformed mailto:-link)"
+ ;;
+../*)
+ echo "!! -> '$F' (skipping topdir build)"
+ ;;
+# */*.html)
+# echo "!! -> '$F' (skipping subdir build)"
+# ;;
+# */*/*/|*/*/|*/|*/index.htm|*/index.html)
+# echo "!! -> '$F' (skipping subdir index.html)"
+# ;;
+*.html) scan_htmlfile "$F" # ........... SCAN HTML
+ if test ".$opt_xml" != "." ; then
+ F=`echo "$F" | sed -e "s/\\.html$/.xml/"`
+ scan_xmlfile "$F"
+ fi ;;
+*.xml) scan_xmlfile "$F" ;;
+*/) echo "'$F' : directory - skipped"
+ site_map_list_title "$F" "`sed_slash_key $F`"
+ site_map_long_title "$F" "(directory)"
+ ;;
+*) echo "?? -> '$F'"
+ ;;
+esac done
+
+if test ".$printerfriendly" != "." ; then # .......... PRINT VERSION
+ _ext_=`print_extension "$printerfriendly" | sed -e "s/&/\\\\&/"`
+ PRINTSITEFILE=`echo "$SITEFILE" | sed -e "s/\\.[$AA]*\$/$_ext_&/"`
+ echo "NOTE: going to create printer-friendly sitefile $PRINTSITEFILE"
+ make_printsitefile > "$PRINTSITEFILE"
+fi
+
+for F in $FILELIST ; do case "$F" in #### 2. PASS
+name:*) skip_namespec "$F" ;;
+http:*|https:*|ftp:*|mailto:*|telnet:*|news:*|gopher:*|wais:*)
+ skip_httpspec "$F" ;;
+${SITEFILE}|${SITEFILE}l) make_sitefile "$F" # ........ SITE FILE
+ if test ".$printerfriendly" != "." ; then make_printerfriendly "$F" ; fi
+ if test ".$opt_xml" != "." ; then _old_F_="$F"
+ F=`echo "$F" | sed -e "s/\\.html$/.xml/"`
+ make_xmlmaster "$F" ;F="$_old_F_"
+ fi ;;
+*@*.de)
+ echo "!! -> '$F' (skipping malformed mailto:-link)"
+ ;;
+../*)
+ echo "!! -> '$F' (skipping topdir build)"
+ ;;
+# */*.html)
+# echo "!! -> '$F' (skipping subdir build)"
+# ;;
+# */*/*/|*/*/|*/|*/index.htm|*/index.html)
+# echo "!! -> '$F' (skipping subdir index.html)"
+# ;;
+*.html) make_htmlfile "$F" # .................. HTML FILES
+ test ".$printerfriendly" != "." && make_printerfriendly "$F"
+ if test ".$opt_xml" != "." ; then _old_F_="$F"
+ F=`echo "$F" | sed -e "s/\\.html$/.xml/"`
+ make_xmlfile "$F" ;F="$_old_F_"
+ fi ;;
+*.xml) make_xmlfile "$F" ;;
+*/) echo "'$F' : directory - skipped"
+ ;;
+*) echo "?? -> '$F'"
+ ;;
+esac
+# .............. debug ....................
+ if test -d DEBUG && test -f "./$F" ; then
+ FFFF=`echo "$F" | sed -e "s,/,:,g"`
+ test -f "$tmp/$F.$DATA" && cp "$tmp/$F.$DATA" DEBUG/$FFFF.data.tmp.htm
+ test -f "$tmp/$F.$HEAD" && cp "$tmp/$F.$HEAD" DEBUG/$FFFF.head.tmp.sed
+ test -f "$tmp/$F.$BODY" && cp "$tmp/$F.$BODY" DEBUG/$FFFF.body.tmp.sed
+ test -f "$tmp/$F.$FOOT" && cp "$tmp/$F.$FOOT" DEBUG/$FFFF.foot.tmp.sed
+ for P in tags vars span meta page date list html sect \
+ data head body foot fast xmlmapping \
+ gets puts site mett sect1 sect2 sect3 style ; do
+ test -f $tmp/$MK.$P.tmp.htm && cp $tmp/$MK.$P.tmp.htm DEBUG/$FFFF.$P.tmp.htm
+ test -f $tmp/$MK.$P.tmp.sed && cp $tmp/$MK.$P.tmp.sed DEBUG/$FFFF.$P.tmp.sed
+ done
+ fi
+done
+
+if test ".$opt_keeptmpfiles" = "." ; then
+ for i in $tmp/$MK.*.tmp.htm $tmp/$MK.*.tmp.sed \
+ $tmp/$MK.*.tmp.css $tmp/$MK.*.tmp.txt
+ do test -f "$i" && rm "$i"
+ done
+fi
+if test ".$tmp_dir_was_created" != ".no" ; then rm $tmp/* ; rmdir $tmp ; fi
+exit 0
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/mmapped.htm b/Build/source/libs/zziplib/zziplib-src/docs/mmapped.htm
new file mode 100644
index 00000000000..9ac35ece988
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/mmapped.htm
@@ -0,0 +1,226 @@
+<section> <date> 2005 </date>
+<H2> zzip/mmapped </H2> zip access for mmapped views
+
+<BLOCKQUOTE>
+ These routines are fully independent from the traditional zzip
+ implementation. They assume a readonly mmapped sharedmem block
+ representing a complete zip file. The functions show how to
+ parse the structure, find files and return a decoded bytestream.
+</BLOCKQUOTE>
+
+<section>
+<H3> zzip disk handle </H3>
+
+<P>
+ Other than with the <a href="fseeko.html">fseeko</a> alternative
+ interface there is no need to have an actual disk handle to the
+ zip archive. Instead you can use a bytewise copy of a file or
+ even use a mmapped view of a file. This is generally the fastest
+ way to get to the data contained in a zipped file. All it requires
+ is enough of virtual memory space but a desktop computer with a
+ a modern operating system will easily take care of that.
+</P>
+
+<P>
+ The zzipmmapped library provides a number of calls to create a
+ disk handle representing a zip archive in virtual memory. Per
+ default we use the sys/mmap.h (or MappedView) functionality
+ of the operating system. The <code>zzip_disk_open</code> will
+ open a system file descriptor and try to <code>zzip_disk_mmap</code>
+ the complete zip content. When finished with the zip archive
+ call <code>zzip_disk_close</code> to release the mapped view
+ and all management data.
+</P>
+
+<PRE>
+ ZZIP_DISK* zzip_disk_open(char* filename);
+ int zzip_disk_close(ZZIP_DISK* disk);
+
+ ZZIP_DISK* zzip_disk_new(void);
+ ZZIP_DISK* zzip_disk_mmap(int fd);
+ int zzip_disk_munmap(ZZIP_DISK* disk);
+ int zzip_disk_init(ZZIP_DISK* disk,
+ char* buffer, zzip_size_t buflen);
+</PRE>
+
+</section><section>
+<H3> reading the central directory </H3>
+
+<P>
+ To get access to a zipped file, you need a pointer to an entry in the
+ mmapped zip disk known under the type <code>ZZIP_DISK_ENTRY</code>.
+ This is again modelled after the <code>DIR_ENTRY</code> type in being
+ a representation of a file name inside the zip central directory. To
+ get an initial zzip disk entry pointer, use <code>zzip_disk_findfirst</code>,
+ to move the pointer to the next entry use <code>zzip_disk_findnext</code>.
+</P>
+<PRE>
+ extern ZZIP_ENTRY* zzip_disk_findfirst(FILE* disk);
+ extern ZZIP_ENTRY* zzip_disk_findnext(ZZIP_ENTRY* entry);
+</PRE>
+<P>
+ These two calls will allow to walk all zip archive members in the
+ order listed in the zip central directory. To actually implement a
+ directory lister ("zzipdir"), you need to get the name string of the
+ zzip entry. This is not just a pointer: the zzip disk entry is not
+ null terminated actually. Therefore we have a helper function that
+ will <code>strdup</code> the entry name as a normal C string:
+</P>
+<PRE>
+ #include &lt;zzip/mmapped.h&gt;
+ void _zzip_dir(char* filename)
+ {
+ ZZIP_DISK* disk = zzip_disk_open (filename);
+ if (! disk) return disk;
+ for (ZZIP_DISK_ENTRY* entry = zzip_disk_findfirst (disk);
+ entry ; entry = zzip_disk_findnext (entry)) {
+ char* name = zzip_disk_entry_strdup_name (entry);
+ puts (name); free (name);
+ }
+ }
+</PRE>
+
+</section><section>
+<H3> find a zipped file </H3>
+
+<P>
+ The central directory walk can be used to find any file in the
+ zip archive. The <code>zzipfseeko</code> library however provides
+ two convenience functions that allow to jump directly to the
+ zip disk entry of a given name or pattern. You are free to use
+ the returned <code>ZZIP_DISK_ENTRY</code> pointer for later calls
+ that type. There is no need to free this pointer as it is really
+ a pointer into the mmapped area of the <code>ZZIP_DISK</code>.
+ But do not forget to free that one via <code>zzip_disk_close</code>.
+</P>
+<PRE>
+ ZZIP_DISK_ENTRY* zzip_disk_findfile(ZZIP_DISK* disk, char* filename,
+ ZZIP_DISK_ENTRY* after,
+ zzip_strcmp_fn_t compare);
+
+ ZZIP_DISK_ENTRY* zzip_disk_findmatch(ZZIP_DISK* disk, char* filespec,
+ ZZIP_ENTRY* after,
+ zzip_fnmatch_fn_t compare, int flags);
+</PRE>
+<P>
+ In general only the first two arguments are non-null pointing to the
+ zip disk handle and the file name to look for. The "after" argument
+ is an old value and allows you to walk the zip directory similar to
+ <code>zzip_disk_entry_findnext</code> but actually leaping forward. The
+ compare function can be used for alternate match behavior: the default
+ of <code>strcmp</code> might be changed to <code>strncmp</code> for
+ a caseless match. The "flags" of the second call are forwarded to the
+ posix <code>fnmatch</code> which we use as the default function.
+</P>
+<P>
+ If you do know a specific zzipped filename then you can just use
+ <code>zzip_disk_entry_findfile</code> and supply the return value to
+ <code>zzip_disk_entry_fopen</code>. There is a convenience function
+ <code>zzip_disk_fopen</code> that will do just that and therefore
+ only requires a disk handle and a filename to find-n-open.
+</P>
+<PRE>
+ #include &lt;zzip/mmapped.h&gt;
+
+ int _zzip_read(ZZIP_DISK* disk, char* filename, void* buffer, int bytes)
+ {
+ ZZIP_DISK_FILE* file = zzip_disk_fopen (disk, filename);
+ if (! file) return -1;
+ int bytes = zzip_disk_fread (buffer, 1, bytes, file);
+ zzip_disk_fclose (file);
+ return bytes;
+ }
+</PRE>
+
+</section><section>
+<H3> reading bytes </H3>
+
+<P>
+ The example has shown already how to read some bytes off the head of
+ a zipped file. In general the zzipmmapped api is used to replace a few
+ system file routines that access a file. For that purpose we provide three
+ functions that look very similar to the stdio functions of
+ <code>fopen()</code>, <code>fread()</code> and <code>fclose()</code>.
+ These work on an active file descriptor of type <code>ZZIP_DISK_FILE</code>.
+</P>
+
+<PRE>
+ ZZIP_DISK_FILE* zzip_disk_entry_fopen (ZZIP_DISK* disk,
+ ZZIP_DISK_ENTRY* entry);
+ ZZIP_DISK_FILE* zzip_disk_fopen (ZZIP_DISK* disk, char* filename);
+ zzip_size_t zzip_disk_fread (void* ptr,
+ zzip_size_t sized, zzip_size_t nmemb,
+ ZZIP_DISK_FILE* file);
+ int zzip_disk_fclose (ZZIP_DISK_FILE* file);
+ int zzip_disk_feof (ZZIP_DISK_FILE* file);
+</PRE>
+
+<P>
+ In all of the examples you need to remember that you provide a single
+ <code>ZZIP_DISK</code> descriptor for a memory block which is in reality
+ a virtual filesystem on its own. Per default filenames are matched case
+ sensitive also on win32 systems. The findnext function will walk all
+ files on the zip virtual filesystem table and return a name entry
+ with the full pathname, i.e. including any directory names to the
+ root of the zip disk <code>FILE</code>.
+</P>
+
+</section><section>
+<H3> ZZIP_DISK_ENTRY inspection </H3>
+
+<P>
+ The <code>ZZIP_DISK_FILE</code> is a special file descriptor handle
+ of the <code>zzipmmapped</code> library - but the
+ <code>ZZIP_DISK_ENTRY</code> is not so special. It is actually a pointer
+ directly into the zip central directory managed by <code>ZZIP_DISK</code>.
+ While <code>zzip/mmapped.h</code> will not reveal the structure on its own,
+ you can include <code>zzip/format.h</code> to get access to the actual
+ structure content of a <code>ZZIP_DISK_ENTRY</code> by its definition
+<br><b><code>&nbsp;&nbsp;&nbsp;&nbsp;struct zzip_disk_entry</code></b>.
+</P>
+
+<P>
+ In reality however it is not a good idea to actually read the bytes
+ in the <code>zzip_disk_entry</code> structure unless you seriously know
+ the internals of a zip archive entry. That includes any byteswapping
+ needed on bigendian platforms. Instead you want to take advantage of
+ helper macros defined in <code>zzip/fetch.h</code>. These will take
+ care to convert any struct data member to the host native format.
+</P>
+<PRE>
+extern uint16_t zzip_disk_entry_get_flags( zzip_disk_entry* entry);
+extern uint16_t zzip_disk_entry_get_compr( zzip_disk_entry* entry);
+extern uint32_t zzip_disk_entry_get_crc32( zzip_disk_entry* entry);
+
+extern zzip_size_t zzip_disk_entry_csize( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_usize( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_namlen( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_extras( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_comment( zzip_disk_entry* entry);
+extern int zzip_disk_entry_diskstart( zzip_disk_entry* entry);
+extern int zzip_disk_entry_filetype( zzip_disk_entry* entry);
+extern int zzip_disk_entry_filemode( zzip_disk_entry* entry);
+
+extern zzip_off_t zzip_disk_entry_fileoffset( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_sizeof_tail( zzip_disk_entry* entry);
+extern zzip_size_t zzip_disk_entry_sizeto_end( zzip_disk_entry* entry);
+extern char* zzip_disk_entry_skipto_end( zzip_disk_entry* entry);
+</PRE>
+
+<P>
+ Additionally the <code>zzipmmapped</code> library has two additional
+ functions that can convert a mmapped disk entry to (a) the local
+ file header of a compressed file and (b) the start of the data area
+ of the compressed file. These are used internally upon opening of
+ a disk entry but they may be useful too for direct inspection of the
+ zip data area in special applications.
+</P>
+<PRE>
+ char* zzip_disk_entry_to_data(ZZIP_DISK* disk,
+ struct zzip_disk_entry* entry);
+ struct zzip_file_header*
+ zzip_disk_entry_to_file_header(ZZIP_DISK* disk,
+ struct zzip_disk_entry* entry);
+</PRE>
+
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/notes.htm b/Build/source/libs/zziplib/zziplib-src/docs/notes.htm
new file mode 100644
index 00000000000..4b6d78177c3
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/notes.htm
@@ -0,0 +1,57 @@
+<H2> Some Notes </H2>
+
+<dl>
+<dt> ClamAV thinks it decompress zip method 9 files </dt>
+<dd>
+ In May 2005 the ClamAV Development team detected a problem
+ with zlib - which knows an undocumented inflate64 that maps
+ to the zip compression method number 9 (implemented in files
+ inftree9 and infback9). However the support for that method
+ is not being compiled into libz.so by default, so you have
+ to recompile zlib to get support for it - zziplib will not do
+ that on its own, nor will it check the actual availability.
+ So, zziplib users might be handicapped if the meet a zip
+ compressed with that method 9, at best they will get an
+ error code back to the application but that is mostly not
+ intuitive enough to point to the actual problem related to
+ the last breed of zip/zlib compression methods. Effectivly
+ you are restricted to methods 0 and 8.
+</dd>
+<dt> Ogre3D + Win64/AMD64 + zziplib = ZZIP_DIR_READ error </dt>
+<dd>
+ As of December 2005 the thread at
+ http://www.ogre3d.org/phpBB2/viewtopic.php?p=110707#110667
+ points to a problem in the 64bit variant of zziplib with
+ some zip archives. The actual source of the problem is
+ unknown. The Ogre project uses an internal copy of the
+ zziplib library being statically linked. The latest
+ zziplib version has been tested on a number of 64bit
+ system in the meantime - however those are 64bit Unix
+ variants (LP64). While Win32 (LP32) works okay there
+ might be some buglet left for Win64 (LLP64) that I can't
+ track down (system N/A to me) in the near future.
+</dd>
+<dt> PHP5 does not know --with-zip </dt>
+<dd>
+ As of January 2005 I was hinted that some of the PHP
+ problems might see a new show. In the past there were
+ numerous queries about installation of zziplib to be
+ useful as the PHP-ZIP module but I could not answer them.
+ (I don't use PHP for real work). The standard php4
+ docs were obviously insufficient with saying to just
+ configure --with-zip... but now even that option is
+ gone and there is no hint anywhere telling of the
+ replacement.
+</dd>
+<dt> sourcebase.sf using modified zziplib code </dt>
+<dd>
+ In May 2003 I did notice that the sourcebase.sf
+ project - providing a generic virtual filesystem
+ for applications - has been reusing the zziplib
+ code. However the code has been modified in a
+ number of places and it was (at first) placed
+ under real GPL. That library was supposed to be
+ put under the hood of the GNOME desktop but at
+ the moment it does not seem to go nowhere further.
+</dd>
+</dl>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/referentials.htm b/Build/source/libs/zziplib/zziplib-src/docs/referentials.htm
new file mode 100644
index 00000000000..8519ed3cd99
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/referentials.htm
@@ -0,0 +1,68 @@
+<section><date> 15. July 2002 </date>
+<h2> ZZIP Referentials </h2> Where is it used.
+
+<!--noborder-->
+
+<section>
+<h3> GPL Rant </h3>
+
+<BLOCKQUOTE>
+ The GPL/LGPL do not have a clause like MPL and others to notify the
+ original author about certain usages of the library - that's a pity
+ since I do not get to know many of the areas where zziplib has come
+ to be used. I can only ask you to send me an e-mail, so I can put a
+ link from here to your project. Within thousands of downloads less
+ than a handful of people wrote to me - mostly for having found a bug
+ or having a feature request. Be nice, and write even if you have had
+ successfully implanted zziplib in your project... I love to hear that ;-)
+</BLOCKQUOTE>
+
+</section><section>
+<h3> opensource games </h3>
+
+<BLOCKQUOTE>
+ Although the library has not been written focusing on game data,
+ it has it greatest success just there. The SDL-rwops example did
+ further it by great amounts, people just like it to have the
+ thousand of small bitmaps to be assembled into one big dat file,
+ and put the AI scripts just next to them.
+</BLOCKQUOTE>
+
+<ul><li> Underworld Adventures: <br>
+<a href="http://uwadv.sourceforge.net">
+ http://uwadv.sourceforge.net</a>
+</li><li> Ogre3D Game Development <br />
+<a href="http://www.ogre3d.org/">
+ http://www.ogre3d.org/</a>
+</li></ul>
+
+</section><section>
+<h3> opensource apps/libs </h3>
+
+<BLOCKQUOTE>
+ Here the most important feature has been the smalls size of this
+ library and the possible to use its autoconf script and even for
+ those who don't, it is easy to make a custom configuration. The
+ source code is easy to understand and therefore to customize for
+ the needs of the app/lib that wants to use the functionality.
+</BLOCKQUOTE>
+
+<ul><li> PHP ZIP Module <br>
+<a href="http://www.php.net/manual/en/ref.zip.php">
+ http://www.php.net/manual/en/ref.zip.php</a>
+</li></ul>
+
+</section><section>
+<h3> commercial usage </h3>
+
+<BLOCKQUOTE>
+ For commercial usage, you can bind many small files into a zip
+ file for easier handling. Obfuscation and io-wrapping help
+ greatly to implant it in areas even far from posix-io grounds.
+</BLOCKQUOTE>
+
+<ul><li> Media Portal Backside <br>
+<a href="http://www.appwares.com">
+ http://www.appwares.com</a>
+</li></ul>
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/sdocbook.css b/Build/source/libs/zziplib/zziplib-src/docs/sdocbook.css
new file mode 100644
index 00000000000..95a65fb2d24
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/sdocbook.css
@@ -0,0 +1,679 @@
+abbrev
+{
+ display: inline;
+}
+
+abstract
+{
+ margin-left: 0.5in;
+ margin-right: 0.5in;
+ display: inline;
+}
+
+acronym
+{
+ display: inline;
+}
+
+address
+{
+ white-space: pre;
+ display: block;
+}
+
+anchor
+{
+ display: inline;
+}
+
+appendix
+{
+ display: block;
+}
+
+articleinfo
+{
+ display: none;
+}
+
+article
+{
+ display: block;
+}
+
+audiodata
+{
+ display: none;
+}
+
+audioobject
+{
+ display: none;
+}
+
+author
+{
+ display: inline;
+}
+
+authorgroup
+{
+ display: inline;
+}
+
+authorinitials
+{
+ display: inline;
+}
+
+bibliomisc
+{
+ display: inline;
+}
+
+bibliomset
+{
+ display: inline;
+}
+
+biblioset
+{
+ display: inline;
+}
+
+blockquote
+{
+ display: block;
+ margin-left: 0.5in;
+ margin-right: 0.5in;
+}
+
+caption
+{
+ display: none;
+}
+
+citetitle
+{
+ display: inline;
+ font-style: italic;
+}
+
+city
+{
+ display: inline;
+}
+
+colspec
+{
+ display: none;
+}
+
+command
+{
+ display: inline;
+ font-style: italic;
+}
+
+computeroutput
+{
+ display: inline;
+ font-family: monospace;
+}
+
+copyright
+{
+ display: inline;
+}
+
+corpauthor
+{
+ display: inline;
+}
+
+country
+{
+ display: inline;
+}
+
+date
+{
+ display: inline;
+}
+
+articleinfo
+{
+ display: none;
+}
+
+appendixinfo
+{
+ display: none;
+}
+
+edition
+{
+ display: inline;
+}
+
+editor
+{
+ display: inline;
+}
+
+email
+{
+ display: inline;
+ font-style: italic;
+}
+
+emphasis
+{
+ display: inline;
+ font-style: italic;
+}
+
+entry
+{
+ display: table-cell;
+}
+
+example
+{
+ display: block;
+}
+
+fax
+{
+ display: inline;
+}
+
+figure
+{
+ display: block;
+}
+
+filename
+{
+ display: inline;
+ font-style: italic;
+}
+
+firstname
+{
+ display: inline;
+}
+
+footnote
+{
+ display: inline;
+}
+
+holder
+{
+ display: inline;
+}
+
+honorific
+{
+ display: inline;
+}
+
+imagedata
+{
+ display: inline;
+}
+
+imageobject
+{
+ display: inline;
+}
+
+informaltable
+{
+ display: block;
+}
+
+inlinemediaobject
+{
+ display: inline;
+}
+
+isbn
+{
+ display: inline;
+}
+
+issn
+{
+ display: inline;
+}
+
+issuenum
+{
+ display: inline;
+}
+
+itemizedlist
+{
+ display: block;
+ list-style-type: disc;
+}
+
+keyword
+{
+ display: inline;
+}
+
+keywordset
+{
+ display: inline;
+}
+
+legalnotice
+{
+ display: inline;
+}
+
+lineage
+{
+ display: inline;
+}
+
+lineannotation
+{
+ display: inline;
+}
+
+link
+{
+ display: inline;
+}
+
+listitem
+{
+ display: list-item;
+}
+
+literal
+{
+ display: inline;
+}
+
+literallayout
+{
+ display: inline;
+}
+
+mediaobject
+{
+ display: inline;
+}
+
+member
+{
+ display: inline;
+}
+
+note
+{
+ display: inline;
+}
+
+objectinfo
+{
+ display: inline;
+}
+
+option
+{
+ display: inline;
+}
+
+orderedlist
+{
+ display: block;
+ list-style-type: decimal;
+}
+
+otheraddr
+{
+ display: inline;
+}
+
+othercredit
+{
+ display: inline;
+}
+
+othername
+{
+ display: inline;
+}
+
+pagenums
+{
+ display: inline;
+}
+
+para
+{
+ display: block;
+}
+
+phone
+{
+ display: inline;
+}
+
+phrase
+{
+ display: inline;
+}
+
+pob
+{
+ display: inline;
+}
+
+postcode
+{
+ display: inline;
+}
+
+printhistory
+{
+ display: inline;
+}
+
+procedure
+{
+ display: inline;
+}
+
+programlisting
+{
+ display: inline;
+}
+
+pubdate
+{
+ display: inline;
+}
+
+publisher
+{
+ display: inline;
+}
+
+publishername
+{
+ display: inline;
+}
+
+quote
+{
+ display: inline;
+}
+
+replaceable
+{
+ display: inline;
+}
+
+revhistory
+{
+ display: inline;
+}
+
+revision
+{
+ display: inline;
+}
+
+revnumber
+{
+ display: inline;
+}
+
+revremark
+{
+ display: inline;
+}
+
+row
+{
+ display: table-row;
+}
+
+section
+{
+ display: block;
+}
+
+sectioninfo
+{
+ display: none;
+}
+
+sidebar
+{
+ display: block;
+}
+
+simplelist
+{
+ display: inline;
+}
+
+state
+{
+ display: inline;
+}
+
+step
+{
+ display: inline;
+}
+
+street
+{
+ display: inline;
+}
+
+substeps
+{
+ display: inline;
+}
+
+subtitle
+{
+ display: inline;
+}
+
+surname
+{
+ display: inline;
+}
+
+systemitem
+{
+ display: inline;
+}
+
+tbody
+{
+ display: table-row-group;
+}
+
+term
+{
+ display: inline;
+}
+
+textobject
+{
+ display: inline;
+}
+
+tgroup
+{
+ display: table;
+}
+
+thead
+{
+ display: table-row-group;
+}
+
+title
+{
+ display: block;
+}
+
+article title
+{
+ font-size: 36pt;
+ font-weight: bold;
+ display: block;
+}
+
+section title
+{
+ font-size: 24pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section title
+{
+ font-size: 20pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section title
+{
+ font-size: 18pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section section title
+{
+ font-size: 16pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section section section title
+{
+ font-size: 14pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section section section section title
+{
+ font-size: 12pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix title
+{
+ font-size: 24pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section title
+{
+ font-size: 22pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section title
+{
+ font-size: 18pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section section title
+{
+ font-size: 16pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section section section title
+{
+ font-size: 14pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section section section section title
+{
+ font-size: 12pt;
+ font-weight: bold;
+ display: block;
+}
+
+titleabbrev
+{
+ display: none;
+}
+
+trademark
+{
+ display: inline;
+}
+
+ulink
+{
+ display: inline;
+}
+
+userinput
+{
+ display: inline;
+}
+
+variablelist
+{
+ display: inline;
+}
+
+varlistentry
+{
+ display: inline;
+}
+
+videodata
+{
+ display: inline;
+}
+
+videoobject
+{
+ display: inline;
+}
+
+volumenum
+{
+ display: inline;
+}
+
+xref
+{
+ display: inline;
+}
+
+year
+{
+ display: inline;
+}
+
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/sfx-make.htm b/Build/source/libs/zziplib/zziplib-src/docs/sfx-make.htm
new file mode 100644
index 00000000000..5e092e47a11
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/sfx-make.htm
@@ -0,0 +1,167 @@
+<section> <date> February 2003 </date>
+<h2> SFX-Make </h2> combining an EXE with a ZIP archive
+
+<!--border-->
+
+<section>
+<h3> How To </h3>
+<P>
+ In this section we walk you through the steps of combining an EXE
+ with a ZIP archive. The basic scheme goes like this: the final
+ file will have an EXE starting at offset null, followed by the
+ data entries of a ZIP archive. The <em>last</em> part of the ZIP
+ archive is the ZIP central-directory which ends at the end of the file.
+</P>
+<P>
+ The basic problem lies in the fact that the zip central-directory
+ entries reference their data section with an offset from the
+ start-of-file so that you can not just append a zip archive after
+ an exe stub. The trick goes like adding the EXE as the first data
+ part of the ZIP archive - so that the offsets for each entry will
+ be correct when we are finished with it.
+</P>
+<P>
+ Again, one can not just use a zip tool to put the EXE as the first
+ part - since each data part is preceded with an infoblock of a
+ few bytes. The data of the first data part will therefore not
+ start at offset zero. We solve this problem with moving the data
+ a few bytes later - so that the final file will not start with a
+ "PK" magic (from the zip info header) but with an "MZ" or "ELF"
+ magic (from the exe info header).
+</P>
+
+</section><section>
+<h3> Step 1: Creating The Zip Combination </h3>
+<P>
+ Choose your exe file (example.exe) and wrap that file into a
+ zip container - ensure that the zip tool does <em>not</em>
+ use any compression algorithm on the data. This is usually
+ done with saying "zero compression level" as an option to
+ the zip tool. Also note that <em>no other</em> file is
+ wrapped as some zip tools reorder the entries from the
+ order on the command line to alphabetic order. Here is an
+ example with infozip's `zip` (e.g. on linux):
+ <pre> zip -0 -j example.zip example.exe </pre>
+</P>
+<P>
+ There is no zip tool that would reorder the data entries in
+ an existing zip archive. This mode is used here - the real
+ compressed data entries can now be added to the existing
+ zip archive that currently just wraps the exe part. With
+ specifying maximum compression ("-9" = compression level 9)
+ and throwing away any subdirectory part ("-j" = junk path)
+ it might look like
+ <pre> zip -9 -j example.zip data/* </pre>
+</P>
+<P>
+ Now we need to move the exe part by a few bytes to the
+ real start of the file. This can be done as easily as
+ writing the exe file again on to the start of the file.
+ However, one can not just use a shell-direction or
+ copy-operation since that would truncate (!!) the zip
+ file to the length of the exe part. The overwrite-operation
+ must be done without truncation. For maximum OS independence
+ the zziplib ships with a little tool in "test/zzipsetstub.c"
+ that you can reuse for this task:
+ <pre> zzipsetstub example.zip example.exe </pre>
+</P>
+<P>
+ This is it - the `unzip` tool can still access all data
+ entries but the first EXE - the first EXE will be listed
+ in the central-directory of the ZIP archive but one can
+ not extract the data since the "PK" magic at offset null
+ has been overwritten with the EXE magic. The data of all
+ the other entries can still be extracted with a normal
+ `unzip` tool - or any tool from the zziplib be used for
+ the same task.
+</P>
+
+</section><section>
+<h3> Step 2: Accessing The Data From The Program </h3>
+
+<P>
+ There is an example in test/zzipself.c that show how to do
+ it. The OS will provide each program with its own name in
+ argv[0] of the main() routine. This program file (!!) is
+ also the zip archive that carries the compressed data
+ entries along. Therefore, we can just issue a zzip_opendir
+ on argv[0] to access the zip central-directory.
+</P>
+<P>
+ Likewise one can open a file within it by just prepending
+ the string argv[0] to the filename stem, i.e. you could
+ do like
+ <pre> ZZIP_FILE* f = zzip_fopen ("example.exe/start.gif", "rbi")</pre>
+</P><P>
+ however you are advised to use the _ext_io cousin to be
+ platform independet - different Operating Systems use
+ different file extensions for executables, it's not always
+ an ".exe".
+</P>
+<P>
+ Once the file is opened, the data can be zzip_fread or
+ passed through an SDL_rwops structure into the inner
+ parts of your program.
+</P>
+
+</section><section>
+<h3> Step 3: Using Obfuscation Along </h3>
+
+<P>
+ The next level uses obfuscatation on the data part of the
+ application. That way there is no visible data to be seen
+ from outside, it looks like it had been compiled right into
+ the C source part. One can furthermore confuse a possible
+ attacker with staticlinking the zziplib into the executable
+ (this is possible in a limited set of conditions).
+</P>
+<P>
+ The first pass is again in creating the zip - here we must
+ ensure that only the ZIP archive part is obfuscated but
+ the EXE part must be plain data so that the operationg
+ system can read and relocate it into main memory. Using
+ xor-obfuscation this is easy - applying xor twice will
+ yield the original data. The steps look like this now:
+ <pre>
+ zzipxorcopy example.exe example.xor
+ zip -0 application.zip example.xor
+ zip -9 application.zip data/*
+ zzipsetstub application.zip example.xor
+ zzipxorcopy application.zip application.exe
+ </pre>
+</P>
+<P>
+ In the second step the open-routine in your application
+ needs to be modified - there are quite some examples in
+ the zziplib that show you how to add an xor-read routine
+ and passing it in the "io"-part of an zzip_open_ext_io
+ routine (see zzipxorcat.c).
+ <pre>
+ static int xor_value = 0x55;
+
+ static zzip_ssize_t xor_read (int f, void* p, zzip_size_t l)
+ {
+ zzip_ssize_t r = read(f, p, l);
+ zzip_ssize_t x; char* q; for (x=0, q=p; x &lt; r; x++) q[x] ^= xor_value;
+ return r;
+ }
+
+ static struct zzip_plugin_io xor_handlers;
+ static zzip_strings_t xor_fileext[] = { ".exe", ".EXE", "", 0 };
+
+ main(...)
+ {
+ zzip_init_io (&amp;xor_handlers, 0); xor_handlers.read = &amp;xor_read;
+
+ ZZIP_FILE* fp = zzip_open_ext_io (filename,
+ O_RDONLY|O_BINARY, ZZIP_CASELESS|ZZIP_ONLYZIP,
+ xor_fileext, &amp;xor_handlers);
+ ....
+ </pre>
+</P>
+<P>
+ You may want to pick your own xor-value instead of the default 0x55,
+ the zziplib-shipped tool `zzipxorcopy` does know an option to just
+ set the xor-value with which to obfuscate the data.
+</P>
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/site.htm b/Build/source/libs/zziplib/zziplib-src/docs/site.htm
new file mode 100644
index 00000000000..6f4e4e65066
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/site.htm
@@ -0,0 +1,68 @@
+<html><head><title>zziplib</title>
+ <style>
+ a:link { text-decoration : none ; color : #000080 ; }
+ a:visited { text-decoration : none ; color : #200060 ; }
+ .justify { text-align : justify ; }
+ </style>
+</head><body>
+
+<table width="100%"><tr valign="top"><td bgcolor="#F0F0F0" width="145">
+<center>
+ <big><big><big><b>
+ <font color="#800080"><sup>Z</sup>ZIP<sub>lib</sub></font>
+ </b></big></big></big>
+<br><big><b> <!--VERSION--> </b></big>
+</center>
+<hr> <a href="zzip-index.html">Library</a>
+<br>-<a href="zzip-zip.html">ZIP Access</a>
+<br>-<a href="zzip-file.html">Transparently</a>
+<br>-<a href="zzip-sdl-rwops.html">SDLrwops Example</a>
+<br>-<a href="zzip-extio.html">ext/io Customization</a>
+<br>-<a href="zzip-xor.html">xor/io Obfuscation</a>
+<br>-<a href="zzip-api.html">Library API</a>
+<br>-<a href="zzip-parse.html">Parsing ZIPs</a>
+<br>-<a href="64on32.html">64on32 extras</a>
+<br>-<a href="future.html">Next To Come</a>
+<br>-<a href="configs.html">Config Helpers</a>
+<br>-<a href="sfx-make.html">Making a zip/exe</a>
+<br>-<a href="history.html">Hints And Links</a>
+<br>-<a href="referentials.html">Referentials</a>
+<br> -<a href="zziplib.html">Functions List #</a>
+<!--START-->
+<br> -<a href="man/index.html">The Manual Pages #</a>
+<!--ENDS-->
+
+<br>&nbsp&nbsp&nbsp <small>(#&nbsp;autogenerated)</small>
+
+<br>&nbsp;<hr>
+
+<br><b><a alt="Tarballs, RPM-archive and windll-ZIPs can be downloaded from"
+ href="http://sourceforge.net/project/showfiles.php?group_id=6389">
+ Download Area *</a></b>
+<br><a alt="Sourceforge Project CVS web access"
+ href="http://zziplib.svn.sourceforge.net/viewvc/zziplib/">Sourceforge SVN</a>
+<br><a alt="Sourceforge Project Index Page"
+ href="http://sourceforge.net/projects/zziplib">Sourceforge Project</a>
+<br><a alt="the zziplib webpage at sourceforge"
+ href="http://zziplib.sourceforge.net">zziplib.sf.net
+ <small><i>Home</i></small></a>
+
+<br><small><a alt="zziplib - license details"
+ href="copying.html">LGPL/MPL license</a></small>
+<br>&nbsp;
+<hr>
+<center><!--START-->
+ <a href="http://sourceforge.net/project/?group_id=6389">
+ <img src="http://sourceforge.net/sflogo.php?group_id=6389&type=2"
+ border="0" alt="sourceforge.net" width="125" height="37">
+ </a>
+</center><!--ENDS-->
+
+<p align="right"><small>
+generated <!--DATE-->
+</small>
+<br> <small>(C)</small> Guido Draheim
+<br><i> guidod<small>@</small>gmx.de</i>
+</p>
+
+</td><td>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zip-php.htm b/Build/source/libs/zziplib/zziplib-src/docs/zip-php.htm
new file mode 100644
index 00000000000..04166673f38
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zip-php.htm
@@ -0,0 +1,63 @@
+<H2> PHP-ZIP Installation </H2>
+
+<P>
+ There have been many problems about the installation of the php-zip
+ module. Since Mid of 2006 the php-zip module does not require the
+ zziplib anymore - it uses its own implementation (which is a clean
+ approach in a double sense - there are no source code comments).
+ So, the following might possibly be only relevant for older
+ installations.
+</P>
+
+<P> Chris Branch has been kind enough to jot down the points of a
+ successful php-zip installation sending it to me in May 2006.
+ I am quoting his text verbatim - again, I do not know whether
+ it works or not as I am not using any PHP for real work.
+</P>
+
+<hr width="60%" align="center">
+<DL>
+<DT> Software Packages </DT>
+<dd><ul>
+<li> Apache 2.4.21 (Linux) </li>
+<li> PHP 4.3.9 </li>
+<li> ZZIPLIB 0.10.82 </li>
+<li> Special requirement: static linking
+</ul></dd>
+<DT> Setting up ZZIPLIB </DT>
+<dd><ul>
+<li> Extract files from zziplib-0.10.82.tar.bz2 to a new folder. </li>
+<li> ./configure --enable-static </li>
+<li> make </li>
+<li> make install </li>
+</ul></dd>
+<DT> Rebuilding PHP to include ZIP support </DT>
+<dd><ul>
+<li> Modify PHP build file and add "--with-zip"
+[no dir needed because default /usr/local on my machine] </li>
+<li> make </li>
+<li> make install </li>
+</ul></dd>
+<DT> Modifying the Apache Installation </DT>
+<dd><ul>
+<li> Change to Apache source code directory </li>
+<li> Change to "src" subdirectory and edit existing Makefile. [***]
+<br> Add: EXTRA_LIBS=/usr/local/lib/libzzip.a </li>
+<li> Change back to parent folder (cd ..) </li>
+<li> make </li>
+<li> /usr/local/etc/httpd/bin/apachectl stop </li>
+<li> make install </li>
+<li> /usr/local/etc/httpd/bin/apachectl start </li>
+</ul></dd>
+</DL>
+
+<p><b>[***] Note:</b>
+That step is the critical step that's not obvious. Apparently,
+when you build PHP as a static library and include the "--with-zip"
+option, it creates a static library for PHP with an external dependency on
+zziplib.a. However, the Apache configure script and resulting Makefile
+doesn't take this into account, so Apache won't link unless you hand-edit
+the Apache Makefile. (Maybe there's a better place to make this change so
+that you don't have to re-fix Apache's Makefile each time you run Apache's
+./configure. However, I didn't spend the time to investigate that).
+</p>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-api.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-api.htm
new file mode 100644
index 00000000000..92a42a7ef87
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-api.htm
@@ -0,0 +1,30 @@
+<section> <date> 20. July 2002 </date>
+<h2> ZZIP Programmers Interface </h2> The complete API description.
+
+<!--border-->
+
+<P>
+ The zzip library was originally developed by Tomi Ollila as a
+ set of zip decoder routines. Guido Draheim did pick it up and
+ wrapped them under a call synopsis matching their posix
+ api calls. Therefore <code>zzip_open()</code> has the same
+ synopsis as <code>open(2)</code> but it can open zipped files.
+ Later the distinction was made between magic wrappers and apis
+ for direct access to zip archives and the files contained
+ in the archive.
+</P>
+<P>
+ These (three) functional apis have little helper functions
+ alongside including those to get the posix filehandle out of a
+ zzip handle and to get some attributes about the data handle
+ represented by a zzip handle. Plus checking for error codes
+ that may have been generated from internal checks.
+</P>
+
+<dl>
+<dt> <a href="zzip-basics.html">Basics</a> </dt>
+<dd> Magic Wrappers, Zip Archive Dir access, Zipped File access </dd>
+<dt> <a href="zzip-extras.html">Extras</a> </dt>
+<dd> ext/io init, StdC calls, Error defs, ReOpen, FileStat </dd>
+</dl>
+</section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-basics.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-basics.htm
new file mode 100644
index 00000000000..bf603f2fe36
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-basics.htm
@@ -0,0 +1,163 @@
+<section> <date> 20. July 2002 </date>
+<h2> ZZIP API Basics </h2> The open/close API description.
+
+<!--border-->
+
+<section>
+<h3> Basics </h3>
+
+<P>
+ The naming schem of functions in this library follow a simple rule:
+ if you see a function with a <code>zzip_</code> prefix followed by
+ compact name representing otherwise a C library or posix function then
+ it is a magic wrapper that can automagically handle both real
+ files/directories or zip-contained files. This includes:
+</P>
+<table cellpadding=10 width=100%><tr><td><table width=100% border=1>
+ <tr><td width=50%> zzip_opendir </td><td width=50%> opendir </td></tr>
+ <tr><td width=50%> zzip_readdir </td><td width=50%> readdir </td></tr>
+ <tr><td width=50%> zzip_closedir </td><td width=50%> closedir </td></tr>
+ <tr><td width=50%> zzip_rewinddir </td><td width=50%> rewinddir </td></tr>
+ <tr><td width=50%> zzip_telldir </td><td width=50%> telldir </td></tr>
+ <tr><td width=50%> zzip_seekdir </td><td width=50%> seekdir </td></tr>
+</table></td></tr></table>
+<P>
+ The ZZIP_DIR handle can wrap both a real directory or a zip-file.
+ Note that you can not open a virtual directory <em>within</em> a
+ zip-file, the ZZIP_DIR is either a real DIR-handle of a real
+ directory or the reference of ZIP-file but never a DIR-handle
+ within a ZIP-file - there is no such schema of a SUB-DIR handle
+ implemented in this library. A ZZIP_DIR does actually represent
+ the central directory of a ZIP-file, so that each file entry in
+ this ZZIP-DIR can possibly have a subpath prepended.
+</P>
+
+<P>
+ This form of magic has historic reasons as originally the
+ magic wrappers of this library were not meant to wrap a complete
+ subtree of a real file tree but only a single directory being
+ wrapped with into a zip-file and placed instead. Later proposals
+ and patches were coming in to support subtree wrapping by not
+ only making a split between the dir-part and file-part but
+ going recursivly up through all "/"-dirseparators of a filepath
+ given to <code>zzip_open</code> and looking for zip-file there.
+</P>
+
+<P>
+ To open a zip-file unconditionally one should be using their
+ respective methods that would return a ZZIP_DIR handle being
+ the representant memory instance of a ZIP-DIR, the central
+ directory of a zip-file. From that ZZIP-DIR one can open a
+ compressed file entry which will be returned as a ZZIP_FILE
+ pointer.
+</P>
+<table cellpadding=10 width=100%><tr><td><table border=1 width=100%>
+ <tr><td width=50%> zzip_dir_open </td>
+ <td width=50%> open a zip-file and parse the central directory
+ to a memory shadow</td></tr>
+ <tr><td width=50%> zzip_dir_close </td>
+ <td width=50%> close a zip-file and free the memory shadow</td></tr>
+ <tr><td width=50%> zzip_dir_fdopen </td>
+ <td width=50%> acquire the given posix-file and try to parse it
+ as a zip-file.</td></tr>
+ <tr><td width=50%> zzip_dir_read </td>
+ <td width=50%> return the next info entry of a zip-file's central
+ directory - this would include a possible subpath </td></tr>
+</table></td></tr></table>
+
+<P>
+ To unconditionally access a zipped-file (as the counter-part of a
+ zip-file's directory) you should be using the functions having a
+ <code>zzip_file_</code> prefix which are the methods working on
+ ZZIP_FILE pointers directly and assuming those are references of
+ a zipped file with a ZZIP_DIR.
+</P>
+<table cellpadding=10 width=100%><tr><td><table border=1 width=100%>
+ <tr><td width=50%> zzip_file_open </td>
+ <td width=50%> open a file within a zip and prepare a zlib
+ compressor for it - note the ZZIP_DIR argument,
+ multiple ZZIP_FILE's may share the same central
+ directory shadow.</td></tr>
+ <tr><td width=50%> zzip_file_close </td>
+ <td width=50%> close the handle of zippedfile
+ and free zlib compressor of it</td></tr>
+ <tr><td width=50%> zzip_file_read </td>
+ <td width=50%> decompress the next part of a compressed file
+ within a zip-file</td></tr>
+</table></td></tr></table>
+<P>
+ From here it is only a short step to the magic wrappers for
+ file-access - when being given a filepath to zzip_open then
+ the filepath is checked first for being possibly a real file
+ (we can often do that by a <code>stat</code> call) and if there is
+ a real file under that name then the returned ZZIP_FILE is
+ nothing more than a wrapper around a file-descriptor of the
+ underlying operating system. Any other calls like zzip_read
+ will see the realfd-flag in the ZZIP_FILE and forward the
+ execution to the read() function of the underlying operating system.
+</P>
+
+<P>
+ However if that fails then the filepath is cut at last directory
+ separator, i.e. a filepath of "this/test/README" is cut into the
+ dir-part "this/test" and a file-part "README". Then the possible
+ zip-extensions are attached (".zip" and ".ZIP") and we check if
+ there is a real file under that name. If a file "this/test.zip"
+ does exist then it is given to zzip_dir_open which will create
+ a ZZIP_DIR instance of it, and when that was successul (so it
+ was in zip-format) then we call zzip_file_open which will see
+ two arguments - the just opened ZZIP_DIR and the file-part. The
+ resulting ZZIP_FILE has its own copy of a ZZIP_DIR, so if you
+ open multiple files from the same zip-file than you will also
+ have multiple in-memory copies of the zip's central directory
+ whereas otherwise multiple ZZIP_FILE's may share a common
+ ZZIP_DIR when being opened with zzip_file_open directly - the
+ zzip_file_open's first argument is the ZZIP_DIR and the second
+ one the file-part to be looked up within that zip-directory.
+</P>
+
+<table cellpadding=10 width=100%><tr><td><table border=1 width=100%>
+ <tr><td width=50%> zzip_open </td>
+ <td width=50%> try the file-path as a real-file, and if not
+ there, look for the existence of ZZIP_DIR by
+ applying extensions, and open the file
+ contained within that one.</td></tr>
+ <tr><td width=50%> zzip_close </td>
+ <td width=50%> if the ZZIP_FILE wraps a real-file, then call
+ read(), otherwise call zzip_file_read() </td></tr>
+ <tr><td width=50%> zzip_close </td>
+ <td width=50%> if the ZZIP_FILE wraps a real-file, then call
+ close(), otherwise call zzip_file_close() </td></tr>
+</table></td></tr></table>
+
+<P>
+ Up to here we have the original functionality of the zziplib
+ when I (Guido Draheim) created the magic functions around the work from
+ Tomi Ollila who wrote the routines to read and decompress files from
+ a zip archive - unlike other libraries it was quite readable and
+ intelligible source code (after many changes there is not much
+ left of the original zip08x source code but that's another story).
+ Later however some request and proposals and patches were coming in.
+</P>
+
+<P>
+ Among the first extensions was the recursive zzip_open magic. In
+ the first instance, the library did just do as described above:
+ a file-path of "this/test/README" might be a zip-file known as
+ "this/test.zip" containing a compressed file "README". But if
+ there is neither a real file "this/test/README" and no real
+ zip-file "this/test.zip" then the call would have failed but
+ know the zzip_open call will recursivly check the parent
+ directories - so it can now find a zip-file "this.zip" which
+ contains a file-part "test/README".
+</P>
+
+<P>
+ This dissolves the original meaning of a ZZIP_DIR and it has lead
+ to some confusion later on - you can not create a DIRENT-like handle
+ for "this/test/" being within a "test.zip" file. And actually, I did
+ never see a reason to implement it so far (open "this.zip" and set
+ an initial subpath of "test" and let zzip_readdir skip all entries
+ that do not start with "test/"). This is left for excercie ;-)
+</P>
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-crypt.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-crypt.htm
new file mode 100644
index 00000000000..9d55ba97215
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-crypt.htm
@@ -0,0 +1,92 @@
+<section> <date> 15. July 2002 </date>
+<h2> ZIP Std Encryption </h2> Standard Zip Encryption is Weak!
+
+<!--border-->
+
+<section>
+<h3> Some rationale </h3>
+
+<P>
+ Some people might ask why not adding standard zip-encryption. Well,
+ first of all the standard zip-encryption has not been strong enough
+ for modern computers, and there are hacker tools that even a
+ half-literate computer-user can use to crack the password of a
+ zip-archive. In other words: <b> every encrypted zip file can be
+ cracked using freely downloadable helper tools </b>. That's because
+ standard zip encryption is weak regarding modern personal computer
+ power. Furthermore, adding <em>real</em> encryption is a heavy weight
+ that many people do not need, see the last argument for seeing the
+ standard one is useless anyway, and adding a non-standard one
+ should not be the case of the standard zziplib either, ye know.
+</P><P>
+ On the other hand, obfuscation is a means to fear off half-literates
+ just as well - there are no <em>premade</em> tools for the obfuscation you
+ can invent from the xor examples. And a hacker that can de-obfuscate
+ such a dat-file is able to dissassemble your program as well - just to
+ remind you that the disassembly of a program will reveal the decryption
+ routine <em>and</em> the decryption key, even for a heavyweight crypt
+ algorithm. Although there is a difference, it just ranges on about times
+ and exprience, not magnitudes. Remember the old saying: you can irritate
+ some people for some time but not irritate all people for all the time.
+ As for encryption of artwork and AI scripts in games and applications,
+ just keep in mind that the final recipient has the decryption key on
+ his system anyway, just obfuscated. So each such encryption is nothing
+ more than just a clever form of obfuscation, nothing mathematical strong.
+</P><P>
+ Some other people might ask why to obfuscate anyway. Well, the reason
+ is theft. Even people who write opensource free software generally
+ like to get some reward for what they do, some fame or atleast some
+ sweet dream to have helped the world go a bit easier in the future.
+ As for program text this is quite natural for the programmers who
+ pick up some code from somewhere else - it happens that most of them
+ have gone through some formation and they know how hard it is to get
+ even some lines of code out of your brain. This is not the case for
+ some artwork and AI parameters, people do not have much respect for
+ those - they just pick it up, put it under their umbrella, and
+ that's it - they even claim they could have done that themselves,
+ and in most cases it is that they never have been really trying to
+ do it and think of it as being comparable to that action-art they've
+ seen on TV.
+</P><P>
+ Just be sure that there is nothing wrong with obfuscating
+ things for a binary distribution of your program even for the
+ opensource case - the program text itself is an obfuscation in its
+ source form when being compiled into cpu instructions. Still, the
+ interested people can get hold of the source code since you provide
+ it somewhere and actually the original programmers like to hear
+ from literate people who could help with modifying the project. The
+ same is true for you artwork and AI scripts, the interested people
+ can still see them in the opensource project material, but only
+ those will look who dare to, not just the halfwit next door.
+</P><P>
+ Well, you do not need to that on the other hand - ID software has
+ shown that it can be very helpful since people will start to
+ write new maps and new bots, pack them and publish them. An open
+ data format is a form of attraction for people who can use a
+ graphics program and an editor but who do not know how to program.
+ And if you use obfuscation within an opensource program, it is
+ surely enought to just use the xor-format presented here, so that
+ it easy for third people to get involved if they want to, they
+ just have to rewrite their new datapacks with zzxorcopy, and
+ that's it.
+</P><P>
+ As for the non-opensource projects, be aware that there are
+ some ways to even staticlink the zziplib into your project, so
+ you can even hide that you used zip tools to create your dat files.
+ This is well enough for anyone to do - as soon as a hacker will
+ get to the point to notice you used a zip format, he would have
+ had found any other deobfusation or decryption routine as well.
+ If you are frightened, just encrypt the executable with tools
+ you bought from somewhere else. On the other hand, should there
+ be problems or bugs, you have an easier time to find them when
+ they could be caused by your dat entries, and it is again easy
+ to send a fixup file to your clients, since the command line
+ tools are just a breeze compared with some other anti-hacking
+ tools you'll find on the market.
+</P><P>
+ Well, hope this is enough rationale to tell you that I do not
+ see a need to implement anything more than obfuscation within
+ zziplib - if you need real encryption, use real encryption
+ software and its fileformat that supports it, not zip files.
+</P>
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-cryptoid.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-cryptoid.htm
new file mode 100644
index 00000000000..ee6b120d7f9
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-cryptoid.htm
@@ -0,0 +1,106 @@
+<section> <date> 11. May 2004 </date>
+<h2> ZIP Ext Encryption </h2> ext/io used for cryptoid plugins
+
+<!--border-->
+
+<section>
+<h3> Stronger Obfuscation For ZZip </h3>
+
+<P>
+ Some people feel that a simple bytewise xor is not strong enough
+ as an obfuscation for the data. There we have the question how to
+ implant a stronger obfuscation routine to protect that data of an
+ application from artwork theft. Perhaps there is even the idea to
+ use an obfuscation in the range of a real crypt routine - in which
+ case I want to recommend strongly to read the
+ <a href="zzip-crypt.html"> reasoning page </a> why it can not be
+ real encryption and that the resulting obfuscation has an upper
+ limit being <em>lower</em> than the crypt routine complexity.
+</P>
+
+<P>
+ After reminding you of this fact we can go at evaluationg how to
+ implant a stronger obfusction routine to protect your data. The
+ ext/io feature uses a callback routine "read" that must read a
+ block of the given size - for the obfuscation case it will call
+ the "read()" function of the underlying operation system, and
+ the obfuscated block will be deobfuscated before returning it to
+ the caller.
+</P>
+
+<P>
+ In this mechanism there is not asseration at which file-offset
+ the ext/io-read() callback is triggered. That is the reason we
+ have shown obfuscation with bytewise xor-key example - formally
+ this is using obfuscation blocks of 8bit width being aligned
+ on 8bit boundaries in the data file, and our decryption stream
+ is stateless being the same for each obfuscation block (of 8bit
+ width).
+</P>
+<P>
+ In order for a stronger obfuscation we have to break those
+ limitations which are directly derived from the natural way
+ of the handling of files by a contemporary operating system.
+ This is triggered as the call synopsis of the ext/io read()
+ callback matches <em>exactly</em> the one of posix, so that
+ one can use the posix read() function reference as the default
+ for ensuring the most minimal overhead in accessing non-obfuscated
+ zip files.
+<br><small>And btw, the abbreviation "posix" stands for
+ "Portable Open System in Unix".</small>
+</P>
+
+<P>
+ The trick we show here: the first argument of the ext/io read
+ callback is the file descriptor of the underlying operationg
+ system. While we can not add another argument to the ext/io
+ read call we can pick up additional information with the help
+ of that file descriptor id being globally unique even across
+ multiple threads. One solution would make the application map
+ that descriptor id to a special argument but this is often too
+ much overhead: the current file position is enough.
+</P>
+<P>
+ The current file position is managed by the operation system
+ via the file descriptor table. There is a function call to
+ map a file descriptor to the current read position offset
+ usually named "tell(fd)". Since this call is not mandated by
+ posix, you can emulate it with the posix lseek() call which
+ returns the resulting offset after the operation was performed,
+ so we just seek by a zero offset: <br><code>
+ <> <> <> <> #define tell(fd) lseek(fd,0,SEEK_CUR)
+</code>
+</P>
+
+<P>
+ That file offset is measured from the start of the zip archive,
+ not per each zipped file. Remind yourself of that fact when
+ creating your own "zzobfuscate.exe" which should work on the
+ zip archive and not per file before zipping. That is a difference
+ over normal zip archives where the user can atleast recognized the
+ dat file as a zip archive and see a list of files contained in the
+ archive, atleast their names and data start offset.
+</P>
+<P>
+ Now, let's use the file read offset to break the blocking
+ limitations of 8bit/8bit to a larger xor-key. In our example
+ we expand to a 32bit/32bit xor-key giving a search space of
+ 4<>billion keys instead of the just 256<>keys in 8bit blocking.
+ That is simply done by a static 4<>byte xor-key sequence and using
+ modulo operations for alignment. For the 2^X cases any modulo
+ operations shrink to a set of ultra-fast bitwise-and operations.
+</P>
+
+<pre>
+ static char xor_value[4] = { 0x55, 0x63, 0x27, 0x31 };
+ static zzip_ssize_t xor_read (int f, void* p, zzip_size_t l)
+ {
+ zzip_off_t y = tell(f);
+ zzip_size_t r = read(f, p, l);
+ zzip_size_t x; char* q = p;
+ for (x=0; x &lt; r; x++) q[x] ^= xor_value[(y+x)&amp;3];
+ return r;
+ }
+</pre>
+
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-extio.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-extio.htm
new file mode 100644
index 00000000000..229dd030f9a
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-extio.htm
@@ -0,0 +1,188 @@
+<section> <date>15. July 2002 </date>
+<h2> ZZIP-EXT/IO </h2> Customizing the file access
+
+<!--border-->
+
+<section>
+<h3> The EXT/IO calls </h3>
+
+<P>
+ There were quite some requests from game developers and graphics-apps
+ developers who wanted various extensions to be included into the
+ <a href="zziplib.html">zziplib library</a>, but most of them were
+ only of specific usage. After some discussions we came up with a
+ model to customize the <a href="zziplib.html">zziplib library</a>
+ calls in a number of ways - and adding two or three arguments to
+ the zzip_* calls. The standard <a href="zziplib.html">zziplib library</a>
+ will actually call these *_ext_io functions with these extra arguments
+ to be set to zero.
+</P><P>
+ The EXT feature describes a way to customize the extensions used in
+ the magic wrapper to find a .ZIP file. It turned out that there are
+ quite a number of applications that did chose the zip file format as
+ their native document format and where just the file extension had
+ been changed. This includes file types like Quake3 ".PK3" files from
+ ID Software, the Java library files called ".JAR", and lately the
+ OpenOffice-6 (resp. StarOffice-6) documents which carry xml-files along.
+ Just build a zero-termined string-list of file-extensions and submit it
+ to the _ext_io calls to let the <a href="zziplib.html">zziplib</a> find
+ parts of those zip-documents automagically.
+</P><P>
+ In quite some of these cases, it is very benefical to make use of the
+ o_modes functionality that allows to submit extra bit-options into
+ the <a href="zziplib.html">zziplib</a> - this includes options like
+ <code>ZZIP_PREFERZIP</code> or even <code>ZZIP_ONLYZIP</code> which
+ modifies the default behaviour of looking for real files first instead
+ of some within a zipped directory tree. Other bit-options include
+ <code>ZZIP_CASELESS</code> to imitate win32-like filematching for a
+ zipped filetree.
+</P><P>
+ Other wishes on <a href="zziplib.html">zziplib</a> circulated around
+ <a href="zzip-xor.html">obfuscation</a> or access to zip-files wrapped
+ in other data areas including encrpyted resources from other applications.
+ This has been addressed with the IO-handlers that you can explicitly
+ submit to the *_ext_io functions - the default will be posix-IO
+ open/read/write and seek/tell. An application using
+ <a href="zziplib.html">zziplib</a> can divert these to its own set of
+ these calls - and it only needs to declare them on opening a zipped file.
+</P>
+
+</section><section>
+<h3> The EXT stringlist </h3>
+
+<P>
+ Declaring an EXT stringlist is very simple as it is simply a
+ list of strings, the <a href="zziplib.html">zziplib</a> provides
+ you with a double-const <code>zzip_strings_t</code> type to help
+ you move a global declaration into the writeonly segment of your
+ app - it turned out that about all developers wanted just some
+ extensions on the default and they were fine with having them
+ global-const for their application, nothing like dynamically
+ modifying them. Well, you are still allowed to make it fully
+ dynamic... if you find a use case for that.
+</P><P>
+ Extending the magic zip-extensions is just done by adding the
+ additional extensions to be recognized - just remember to add
+ the uppercased variants too since those will be needed on
+ (unx-like) filesystems that are case-sensitive. In the internet
+ age, quite some downloaded will appear in uppercased format since
+ the other side declared it as that and that other end was happy
+ with it as being a (w32-like) case-insensitive server. Therefore,
+ it should look like <pre>
+ static zzip_strings_t my_ext[] = { ".zip", ".ZIP", ".jar", ".JAR", 0 };
+ </pre>
+</P><P>
+ There is one frequently asked question in this area - how to open
+ a zipped file as "test.zip/README" instead of "test/README". Other
+ than some people might expect, the library will not find it - if
+ you want to have that one needs a fileext list that contains the
+ empty string - not the zero string, an empty string that is. It
+ looks like <pre>
+ static zzip_strings_t my_ext[] = { ".zip", ".ZIP", "", 0 };
+ </pre>
+</P><P>
+ And last not least, people want to tell the library to not try to
+ open a real file that lives side by side with the same path as the
+ file path that can be matched by the zziplib. Actually, the magic
+ wrappers were never meant to be used like - the developer should
+ have used zzip_dir_* functions to open a zip-file and the
+ zzip_file_* functions to read entries from that zip-file. However,
+ the magic-wrappers look rather more familiar, and so you will find
+ now a bit-option ZZIP_ONLYZIP that can be passed down to the _ext_io
+ variants of the magic-wrapper calls, and a real-file will never get
+ tested for existence. Actually, I would rather recommend that for
+ application data the option ZZIP_PREFERZIP, so that one can enter
+ debugging mode by unpacking the zip-file as a real directory tree
+ in the place of the original zip.
+</P>
+
+</section><section>
+<h3> The IO handlers </h3>
+
+<P>
+ While you will find the zzip_plugin_io_t declared in the zziplib
+ headers, you are not advised to make much assumptions about their
+ structure. Still we gone the path of simplicity, so you can use
+ a global static for this struct too just like one can do for the
+ EXT-list. This again mimics the internals of zziplib. There is
+ even a helper function zzip_init_io that will copy the zziplib
+ internal handlers to your own handlers-set. Actually, this is
+ barely needed since the zziplib library will not check for nulls
+ in the plugin_io structure, all handlers must be filled, and the
+ zziplib routines call them unconditionally - that's simply
+ because a conditional-call will be ten times slower than an
+ unconditional call which adds mostly just one or two cpu cycles
+ in the place so you won't ever notice zziplib to be anywhat
+ slower than before adding IO-handlers.
+</P><P>
+ However, you better instantiate your handlers in your application
+ and call that zzip_init_io on that instance to have everything
+ filled, only then modify the entry you actually wish to have
+ modified. For <a href="zzip-xor.html">obfuscation</a> this
+ will mostly be just the <code>read()</code> routine. But one can
+ also use IO-handlers to wrap zip-files into another data part
+ for which one (also) wants to modify the open/close routines
+ as well.
+</P><P>
+ Therefore, you can modify your normal stdio code to start using
+ zipped files by exchaning the fopen/fread/fclose calls by their
+ magic counterparts, i.e. <pre>
+ // FILE* file = fopen ("test/README", "rb");
+ ZZIP_FILE* file = zzip_fopen ("test/README", "rb");
+ // while (0 &lt; fread (buffer, 1, buflen, file)))
+ while (0 &lt; zzip_fread (buffer, 1, buflen, file)))
+ { do something }
+ // fclose (file);
+ zzip_fclose (file);
+ </pre>
+</P><P>
+ and you then need to prefix this code with some additional
+ code to support your own EXT/IO set, so the code will finally
+ look like <pre>
+ /* use .DAT extension to find some files */
+ static zzip_strings_t ext[] = { ".dat", ".DAT", "", 0 };
+ /* add obfuscation routine - see zzxorcat.c examples */
+ static zzip_plugin_io_t io;
+ zzip_init_io (&amp; io, 0);
+ io.read = xor_read;
+ /* and the rest of the code, just as above, but with ext/io */
+ ZZIP_FILE* file = zzip_open_ext_io ("test/README", O_RDONLY|O_BINARY,
+ ZZIP_ONLYZIP|ZZIP_CASELESS, ext, io);
+ while (0 &lt; zzip_fread (buffer, 1, buflen, file)))
+ { do something }
+ zzip_fclose (file);
+ </pre>
+</P>
+
+</section><section>
+<h3> Finally </h3>
+
+<P>
+ What's more to it? Well, if you have some ideas then please mail me
+ about it - don't worry, I'll probably reject it to be part of the
+ standard zziplib dll, but perhaps it is worth to be added as a
+ configure option and can help others later, and even more perhaps
+ it can be somehow generalized just as the ext/io features have been
+ generalized now. In most respects, this ext/io did not add much
+ code to the <a href="zziplib.html">zziplib</a> - the posix-calls
+ in the implemenation, like <code>"read(file)"</code> were simply
+ exchanged with <code>"zip-&gt;io-&gt;read(file)"</code>, and the
+ old <code>"zzip_open(name,mode)"</code> call is split up - the old
+ entry still persists but directly calls
+ <code>"zzip_open_ext_io(name,mode,0,0,0)"</code> which has the
+ old implementation code with just one addition: when the ZIP_FILE
+ handle is created, it uses the transferred io-handlers (or the
+ default ones if io==0), and initialized the io-member of that
+ structure for usage within the <code>zzip_read</code> calls.
+</P><P>
+ This adds just a few bytes to the libs and just consumes additional
+ cpu cycles that can be rightfully called to be negligible (unlike
+ most commercial vendors will tell you when they indeed want to
+ tell you that for soooo many new features you have to pay a price).
+ It makes for greater variability without adding fatness to the
+ core in the default case, this is truly efficient I'd say. Well,
+ call this a German desease :-)=) ... and again, if you have another
+ idea, write today... or next week.
+</P>
+
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-extras.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-extras.htm
new file mode 100644
index 00000000000..1d771160cb9
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-extras.htm
@@ -0,0 +1,164 @@
+<section><date> 20. July 2002 </date>
+<h2> ZZIP API extras </h2> The check/init API description.
+
+<!--border-->
+
+<section>
+<h3> Extras </h3>
+
+<P>
+ The next requests circulated around other file-extensions to
+ automagically look inside filetypes that have zip-format too but
+ carry other fileextensions - most famous might be the ".PK3"
+ files of ID's Quake game. There have been a number of these
+ requests and in a lot of cases it dawned to me that those guys
+ may have overlooked the zzip_dir_open functions to travel
+ through documents of zipformat under any name - that is that the
+ "magic" was not actually needed but they just wanted to read
+ files in zipformat with the zziplib.
+</P>
+
+<P>
+ Other requests circulated around encryption but I did reject
+ those bluntly, always. Instead there have been always examples
+ for doing some obfuscation around the zip-format so that the
+ stock zip/unzip tools do not recognize them but a game
+ software developer can pack/unpack his AI scripts and bitmaps
+ into such a zipformat-like file.
+</P>
+
+<P>
+ After some dead-end patches (being shipped along with the
+ zziplib as configure-time compile-options - greetings to
+ Lutz Sammer and Andreas Schiffler), the general approach
+ of _ext_io came up, and finally implemented (greetings go
+ to Mike Nordell). The _open()-calls do now each have a
+ cousin of _open_ext_io() with two/three additional arguments
+ being a set of extensions to loop through our magic testing,
+ a callback-handler plugin-table for obfuscation-means,
+ and (often) a bit-mask for extra-options - this bitmask even
+ has "PREFERZIP" and "ONLYZIP" options to skip the real-file
+ test magic in those <code>zzip_*open</code> functions.
+</P>
+
+<table cellpadding=10 width=100%><tr><td><table border=1 width=100%>
+ <tr><td width=50%> zzip_open(name,flags) </td>
+ <td width=50%> zzip_open_ext_io(name,flags,mode,ext,io) </td></tr>
+ <tr><td width=50%> zzip_opendir(name) </td>
+ <td width=50%> zzip_opendir_ext_io(name,mode,ext,io) </td></tr>
+ <tr><td width=50%> zzip_dir_open(name,errp) </td>
+ <td width=50%> zzip_dir_open_ext_io(name,errp,ext,io) </td></tr>
+ <tr><td width=50%> zzip_dir_fdopen(fd,errp) </td>
+ <td width=50%> zzip_dir_fdopen_ext_io(fd,errp,ext,io) </td></tr>
+ <tr><td width=50%> zzip_file_open(dir,name,mode) </td>
+ <td width=50%> zzip_file_open_ext_io(dir,name,mode,ext,io) </td></tr>
+</table></td></tr></table>
+
+<P>
+ Oh, and note that the mode,ext,io extras are memorized
+ in the respecitive ZZIP_DIR handle attached, so each
+ of the other calls like <code>zzip_file_open()</code>
+ and <code>zzip_read()</code> will be using them. There
+ are a few helper routines to help setup a new io-plugin
+ where the init_io will currently just memcopy the
+ default_io entries into the user-supplied plugin-struct.
+</P>
+
+<table cellpadding=10 width=100%><tr><td><table border=1 width=100%>
+ <tr><td width=50%> zzip_init_io </td>
+ <td width=50%> the recommended way to do things </td></tr>
+ <tr><td width=50%> zzip_get_default_io </td>
+ <td width=50%> used internally whenever you supply a null
+ for the io-argument of a _ext_io()-call </td></tr>
+ <tr><td width=50%> zzip_get_default_ext </td>
+ <td width=50%> used internally but not exported </td></tr>
+</table></td></tr></table>
+
+
+<P>
+ And last some stdio-like replacements were build but these
+ happen to be actually just small wrappers around the other
+ posix-like magic-calls. It just offers some convenience
+ since wrappers like "SDL_rwops" tend to use a stringised
+ open-mode - and I took the occasion to fold the zzip-bits
+ for the _ext_io-calls right in there recognized via
+ special extensions to the openmode-string of zzip_fopen().
+</P>
+
+<table cellpadding=10 width=100%><tr><td><table border=1 width=100%>
+ <tr><td width=50%> zzip_fopen </td>
+ <td width=50%> convert stringmode and call zzip_open_ext_io </td></tr>
+ <tr><td width=50%> zzip_fread </td>
+ <td width=50%> slower way to say zzip_read </td></tr>
+ <tr><td width=50%> zzip_fclose </td>
+ <td width=50%> a synonym of zzip_close </td></tr>
+</table></td></tr></table>
+
+<P>
+ For some reason, people did need the full set of function-calls()
+ to be working on zzip-wrappers too, so here they are - if the
+ ZZIP_FILE instance did wrap a real file, then the real posix-call
+ will be used, otherwise it is simulated on the compressed stream
+ with a zip-contained file - especially <code>seek()</code> can be
+ a slow operation:
+ if the new point is later then just read out more bytes till we
+ hit that position but if it is an earlier point then rewind to the
+ beginning of the compressed data and start reading/decompression
+ until the position is met.
+</P>
+
+<table cellpadding=10 width=100%><tr><td><table border=1 width=100%>
+ <tr><td width=50%> zzip_rewind </td>
+ <td width=50%> magic for rewind() </td></tr>
+ <tr><td width=50%> zzip_tell </td>
+ <td width=50%> magic for tell() </td></tr>
+ <tr><td width=50%> zzip_seek </td>
+ <td width=50%> magic for seek() </td></tr>
+</table></td></tr></table>
+
+<P>
+ And last not least, there are few informative functions to
+ use function-calls to read parts of the opaque structures
+ of zzip-objects and their zzip-factory.
+</P>
+
+<table cellpadding=10 width=100%><tr><td><table border=1 width=100%>
+ <tr><td width=50%> zzip_dir_stat </td>
+ <td width=50%> a stat()-like thing on a file within a ZZIP_DIR </td></tr>
+ <tr><td width=50%> zzip_dir_real </td>
+ <td width=50%> check if ZZIP_DIR wraps a stat'able posix-dirent</td></tr>
+ <tr><td width=50%> zzip_file_real </td>
+ <td width=50%> check if ZZIP_FILE wraps a stat'able posix-file </td></tr>
+ <tr><td width=50%> zzip_realdir </td>
+ <td width=50%> if zzip_dir_real then return the posix-dirent </td></tr>
+ <tr><td width=50%> zzip_realfd </td>
+ <td width=50%> if zzip_file_real then return the posix-file </td></tr>
+ <tr><td width=50%> zzip_dirhandle </td>
+ <td width=50%> the attached ZZIP_DIR of compressed ZZIP_FILE </td></tr>
+ <tr><td width=50%> zzip_dirfd </td>
+ <td width=50%> the attached posix-file of ZZIP_DIR zip-file </td></tr>
+ <tr><td width=50%> zzip_set_error </td>
+ <td width=50%> set the last ZZIP_DIR error-code </td></tr>
+ <tr><td width=50%> zzip_error </td>
+ <td width=50%> get the last ZZIP_DIR error-code </td></tr>
+ <tr><td width=50%> zzip_strerror </td>
+ <td width=50%> convert a zzip_error into a readable string </td></tr>
+ <tr><td width=50%> zzip_strerror_of </td>
+ <td width=50%> combine both above zzip_strerror of zzip_error </td></tr>
+ <tr><td width=50%> zzip_errno </td>
+ <td width=50%> helper to wrap a zzip-error to a posix-errno </td></tr>
+ <tr><td width=50%> zzip_compr_str </td>
+ <td width=50%> helper to wrap a compr-number to a readable string
+ </td></tr>
+ <tr><td width=50%> zzip_dir_free </td>
+ <td width=50%> internally called by zzip_dir_close if the ref-count
+ of the ZZIP_DIR has gone zero</td></tr>
+ <tr><td width=50%> zzip_freopen </td>
+ <td width=50%> to reuse the ZZIP_DIR from another ZZIP_FILE so it does
+ not need to be parsed again </td></tr>
+ <tr><td width=50%> zzip_open_shared_io </td>
+ <td width=50%> the ext/io cousin but it does not close the old ZZIP_FILE
+ and instead just shares the ZZIP_DIR if possible</td></tr>
+</table></td></tr></table>
+
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-file.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-file.htm
new file mode 100644
index 00000000000..2661fce73cf
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-file.htm
@@ -0,0 +1,183 @@
+<section> <date> 1. June 2000 </date>
+<h2> ZIP File Access </h2> Using Zipped Files Transparently
+
+<!--border-->
+
+<section>
+<h3>The Typedef</h3>
+
+<P>
+ The typedef <code>ZZIP_FILE</code> can serve as a replacement
+ for a normal file descriptor. As long as it is only used
+ for reading a file, the zzlib-user can actually replace
+ the posix functions <code>open/read/close</code>
+ by their counterparts from the
+ <a href="zziplib.html">zziplib library</a>:
+ <code>zzip_open/zzip_read/zzip_close</code>.
+</P>
+<P>
+ As long as the filename path given to <code>zzip_open</code>
+ refers to a real file in the filesystem, it will almost
+ directly forward the call to the respective posix <code>open</code>
+ call. The returned file descriptor is then stored in
+ a member-variable of the <code>ZZIP_FILE</code> structure.
+</P>
+<P>
+ Any subsequent calls to <code>zzip_read</code> will then
+ be forwarded to the posix <code>read</code> call on the
+ memorized file descriptor. The same about <code>zzip_close</code>
+ which will call the posix <code>close</code> function and then
+ <code>free</code> the <code>ZZIP_FILE</code> structure.
+</P>
+<P>
+ The real benefit of the
+ <a href="zziplib.html">zziplib library</a>
+ comes about when the filename argument does actually refer
+ to a file that is zipped in a zip-archive. It happens that
+ even both a real file and a zipped file can live under the
+ same pathname given to the <code>zzip_open</code> call,
+ whereas the real file is used in preference.
+</P>
+
+</section><section>
+<h3>Zipped File</h3>
+
+<P>
+ Suppose you have subdirectory called '<tt>test/</tt>'. In
+ this directory is just one file, called '<tt>README</tt>'.
+ Calling the <code>zzip_open</code> function with an
+ argument of '<i>optional-path/</i> <tt>test/README</tt>',
+ then it will open that file for subsequent reading with
+ <code>zzip_read</code>. In this case the real (<i>stat'able</i>)
+ file is opened.
+</P>
+<P>
+ Now you can go to the '<tt>test/</tt>' directory and zip up
+ the files in there by calling
+ <nobr><tt>`zip ../test.zip *`</tt></nobr>.
+ After this, you can delete the '<tt>test/</tt>' directory and
+ the call to <code>zzip_open</code> will still succeed.
+ The reason is that the part of the path saying
+ '<tt>test/README</tt>' will be replaced by sth. like
+ '<tt>test.zip:README</tt>' - that is the real file '<tt>test.zip</tt>'
+ is opened and searched for a contained file '<tt>README</tt>'.
+</P>
+<P>
+ Calling <code>zzip_read</code> on the zipped '<tt>README</tt>' file
+ will return the very same data as if it is a real file in a
+ real directory. If the zipped file is compressed it will be
+ decompressed on the fly.
+</P>
+
+</section><section>
+<h3>Zip Directory</h3>
+
+<P>
+ The same applies to the use of <code>opendir/readdir/closedir</code>
+ which can safely be replaced with their counterparts from the
+ <a href="zziplib.html">zziplib library</a> - again their prototype
+ follows the scheme of the original calls, just prepend <tt>zzip_</tt>
+ to the function calls and <tt>ZZIP_</tt> to the struct-typedefs.
+</P>
+<P>
+ To call <code>zzip_opendir</code> on a real directory will then
+ return a <code>ZZIP_DIR</code> whose member-variable
+ <code>realdir</code> points to the actual <code>DIR</code>-structure
+ returned by the underlying posix <code>opendir</code>-call.
+</P>
+<P>
+ If a real directory '<tt>test</tt>' does not exist, then the
+ <code>zzip_opendir</code> will try to open a file '<tt>test.zip</tt>'
+ with a call to <code>zzip_dir_open</code>.
+ Subsequent calls to <code>zzip_readdir</code> will then return
+ information as being obtained from the central archive directory
+ of the zip-file.
+</P>
+
+</section><section>
+<h3>Differences</h3>
+
+<P>
+ There are no differences between the posix calls and their counterparts
+ from the <a href="zziplib.html">zziplib library</a> - well, just
+ as long as the zip-file contains just the plain files from a directory.
+</P>
+<P>
+ If the zip-file contains directory entries you may be prompted with
+ some awkward behaviour, since in zip-file a directory happens to be
+ just an empty file. Note that the posix function <code>open</code>
+ may also open a directory for reading - it will only return
+ <code>EISDIR</code> if the <code>open</code> mode-argument included
+ write-access.
+</P>
+<P>
+ What the current of version of the
+ <a href="zziplib.html">zziplib library</a>
+ can definitely not do: calling zzip_opendir on a directory zippend
+ <em>inside</em> a zip-file.
+</P>
+<P>
+ To prevent the enrollment of directories into the zip-archive, you
+ can use the <tt>-D</tt> option of the <tt>zip</tt> program. That
+ is in any <tt>Makefile</tt> you may want to use
+ <nobr><tt>`cd $(dir) &amp;&amp; zip -D ../$(dir).zip *`</tt></nobr>.
+</P>
+
+</section><section>
+<h3>Advantages</h3>
+
+<P>
+ Distribution of a set of files is much easier if it just means
+ to wrap up a group of files into a zip-archive - and copy that
+ zip-archive to the respective destination directory.
+ Even more the files can be compressed and unlike a <tt>tar.gz</tt>
+ archive there is no need to decompress the archive in temporary
+ location before accessing a member-file.
+</P>
+<P>
+ On the other hand, there is no chance to scatter files around
+ on the disk like it could easily happen with a set of gzip'ed
+ man-pages in a single `<tt>man</tt>`-directory. The reader
+ application does not specifically need to know that the file
+ is compressed, so that reading a script like
+ `<tt>share/guile/x.x.x/ice-9/popen.scm</tt>` is done by simple
+ calls to <code>zzip_read</code> which works on zip-file named
+ `<tt>share/guile/x.x.x/ice-9.zip</tt>`.
+</P>
+<P>
+ A version mismatch between different files in a group is now
+ obvious: either the opened file belongs to the distribution
+ archive, or otherwise in resides in a real directory <em>just
+ next to the zip-archive that contains the original</em>.
+</P>
+
+</section><section>
+<h3>Issues</h3>
+
+<P>
+ The <a href="zziplib.html">zziplib library</a> does not
+ use any code piece from the <code>zip</code> programs, neither
+ <em>pkzip</em> nor <em>infozip</em>, so there is no license
+ issue here. The decompression is done by using the free
+ <a href="http://www.gzip.org/zlib">zlib library</a> which has no special
+ issues with respect to licensing.
+ The rights to the <a href="zziplib.html">zziplib library</a>
+ are reserved to the copyright holders, there is a public
+ license that puts most the sources themselves under
+ <a href="COPYING.LIB">the GNU Lesser General Public License</a>,
+ so that the use of a shared library instance of the
+ <a href="zziplib.html">zziplib library</a>
+ has no restrictions of interest to application programmers.
+ For more details and hints about static linking, check
+ the <a href="copying.html">COPYING</a> information.
+</P>
+<P>
+ The only issue you have with the
+ <a href="zziplib.html">zziplib library</a>
+ is the fact that you can only <em>read</em> the contained files.
+ Writing/Compression is not implemented. Even more, a compressed
+ file is not seekable at the moment although I hope that someone
+ will stand up to implement that functionality someday.
+</P>
+
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-index.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-index.htm
new file mode 100644
index 00000000000..f48bdb8ed2f
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-index.htm
@@ -0,0 +1,55 @@
+<section> <date> created 1.Jun.2000, last updated 09.Feb.2003 </date>
+<h2> The Library </h2> Overview
+
+<!--border-->
+
+<!-- 1. section of zzip-zip.html -->
+
+<P>
+ The <a href="zziplib.html">zziplib library</a> is intentionally
+ lightweight, it offers the ability to easily extract data from
+ files archived in a single zip file. Applications can bundle
+ files into a single zip archive and access them.
+ The implementation is based only on the (free) subset of
+ compression with the <a href="http://www.gzip.org/zlib">
+ zlib algorithm</a> which is actually used by the <tt>zip/unzip</tt> tools.
+</P>
+
+<center>
+ The library allows reading zip archives in a number of ways,
+</center><dl>
+<dt>archive mode:</dt>
+<dd> reading the zip directory and extracting files from it.
+ This is the traditional mode as seen with unzip-utilities.
+ Some extra unzip-utiles for transparent/magic mode are
+ shipped as&nbsp;well.
+</dd>
+<dt>replacement mode:</dt>
+<dd> Use ZZIP_FILE / ZZIP_DIR pointers provided by zziplib and
+ put them to work with routines originally developed to
+ work with real directories and file handles. The API calls
+ do follow traditional synopsis from posix/stdio.
+</dd>
+<dt>transparent mode:</dt>
+<dd> Use replacement handles and allow the open()-calls to
+ automatically detect when a file is contained in a zip
+ archive or when it is a real file in the file system.
+ A filepath can be partly in a real filesystem and partly
+ within the zip archive when one is seen.
+</dd>
+<dt> ext magic </dt>
+<dd> Use the same filepath to access either a zipped or real
+ file - it looks for a real file and there is none then
+ every subdirectory of the path is checked, a ".zip"
+ extension appended, and the zipped file transparently
+ opened. This can speed up dat-file development
+ dramatically.
+</dd>
+<dt> io/xor magic </dt>
+<dd> The access to the filesystem can be hooked up - examples
+ are given for xor obfuscation which is great for game
+ artwork and AI data. A small intro for SDLrwops usage is
+ given as well.
+</dd>
+</dl>
+</section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-parse.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-parse.htm
new file mode 100644
index 00000000000..a3c49dcba76
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-parse.htm
@@ -0,0 +1,219 @@
+<section> <date> 17. December 2002 </date>
+<h2> ZIP Format </h2> About Zip Parsing Internals...
+
+<!--border-->
+
+<section>
+<h3> ZIP Trailer Block </h3>
+
+<P>
+ The general ZIP file format is written sequentially - each file
+ being added gets a local file header and its inflated data. When
+ all files are written then a central directory is written - and
+ this central directory may even span multiple disks. And each
+ disk gets a descriptor block that contains a pointer to the start
+ of the central directory. This descriptor is always written last
+ and therefore we call it the "ZIP File Trailer Block".
+</P>
+<P>
+ Okay, so we know that this ZIP Trailer is always at the end of a zip
+ file and that is has a fixed length, and a magic four-byte value at
+ its block start. That should make it easy to detect zip files but in
+ the real world it is not that easy - it is allowed to add a zip
+ archive comment text <em>after</em> the Trailer block. It's rarely
+ used these days but it turns out that a zip reader must be ready
+ to search for the Trailer block starting at the end of the file
+ and looking upwards for the Trailer magic (it's "PK\5\6" btw).
+</P>
+<P>
+ Now that's what the internal function __zip_find_disk_trailer is
+ used for. It's somewhat optimized as we try to use mmap features
+ of the underlying operating system. The returned structure is
+ called zzip_disk_trailer in the library source code, and we only
+ need two values actually: u_rootseek and u_rootsize. The first of
+ these can be used to lseek to the place of the central directory
+ and the second value tells us the byte size of the central directory.
+</P>
+
+</section><section>
+<h3> ZIP Central Directory </h3>
+
+<P>
+ So here we are at the central directory. The disk trailer did also
+ tell us how many entries are there but it is not that easy to read
+ them. Each directory entry (zzip_root_dirent type) has again a
+ magic value up front followed by a few items but they all have some
+ dos format - consider the timestamps, and atleast size/seek values
+ are in intel byteorder. So we might want to parse them into a format
+ that is easier to handle in internal code.
+</P>
+<P>
+ That is also needed for another reason - there are three items in that
+ directory entry being size values of three variadic fields following
+ right after the directory. That's right, three of these. The first
+ variadic field is the filename of this directory entry. In other
+ words, the root directory entry does not contain a seek value of
+ where the filename starts off, the start of the filename is
+ implicitly given with the end address of the directory entry.
+</P>
+<P>
+ The size value for the filename does simply say how long the
+ filename is - however, and more importantly, it allows us to
+ compute the start of the next variadic field, called the extra
+ info field. Well, we do not need any value from that extra info
+ block (it has unix filemode bits when packed under unix) but we
+ can be quite sure that this field is not null either. And that
+ was the second variadic field.
+</P>
+<P>
+ There is a third variadic field however - it's the comment field.
+ That was pretty heavily used in the good old DOS days. We are not
+ used to it anymore since filenames are generally self-descriptive
+ today but in the DOS days a filename was 8+3 chars maximum - and
+ it was in the comment field that told users what's in there. It
+ turned out that many software archives used zip format for just
+ that purpose as their primary distribution format - for being
+ able to attach a comment line with each entry.
+</P>
+<P>
+ Now, these three variadic fields have each an entry in the
+ directory entry header telling of their size. And after these
+ three variadic fields the next directory entry follows right in.
+ Yes, again there is no seek value here - we have to take the sum
+ of the three field sizes and add that to the end address of the
+ directory entry - just to be able to get to the next entry.
+</P>
+
+</section><section>
+<h3> Internal Directory </h3>
+
+<P>
+ Now, the external ZIP format is too complicated. We cut it down
+ to the bare minimum we actually need. The fields in the entry
+ are parsed into a format directly usable, and from the variadic
+ fields we only keep the filename. Oh, and we ensure that the
+ filename gets a trailing null byte, so it can surely be passed
+ down into libc routines.
+</P>
+<P>
+ There is another trick by the way - we use the u_rootsize value
+ to malloc a block for the internal directory. That ensures the
+ internal root directory entries are in nearby locations, and
+ including the filenames themselves which we put in between the
+ dirent entries. That's not only similar to the external directory
+ format, but when calling readdir and looking for a matching
+ filename of an zzip_open call, this will ensure the memory is
+ fetched in a linear fashion. Modern cpu architectures are able
+ to burst through it.
+</P>
+<P>
+ One might think to use a more complicated internal directory
+ format - like hash tables or something. However, they all suffer
+ from the fact that memory access patterns will be somewhat random
+ which eats a lot of speed. It is hardly predictable under what
+ circumstances it gets us a benefit, but the problem is certainly
+ not off-world: there are zzip archives with 13k+ entries. In a real
+ filesystem people will not put 13k files into one directory, of
+ course - but for the zip central directory all entries are listed
+ in parallel with their subdirectory paths attached. So, if the
+ original subtree had a number of directories, they'll end up in
+ parallel in the zip's central directory.
+</P>
+
+</section><section>
+<h3> File Entry </h3>
+
+<P>
+ The zip directory entry has one value that is called z_off in the
+ zziplib sources - it's the seek value to the start of the actual
+ file data, or more correctly it points to the "local file header".
+ Each file data block is preceded/followed with a little frame.
+ There is not much interesting information in these framing blocks,
+ the values are duplicates of the ones found in the zip central
+ directory - however, we must skip the local file header (and a
+ possible duplicate of filename and extrainfo) to arrive at the
+ actual file data.
+</P>
+<P>
+ When the start of the actual file data, we can finally read data.
+ The zziplib library does only know about two choices defined by
+ the value in the z_compr field - a value of "0" means "stored"
+ and data has been stored in uncompresed format, so that we can
+ just copy it out of the file to the application buffer.
+</P>
+<P>
+ A value of "8" means "deflated", and here we initialize the zlib
+ and every file data is decompressed before copying it to the
+ application buffer. Care must be taken here since zlib input data
+ and decompressed data may differ significantly. The zlib compression
+ will not even obey byte boundaries - a single bit may expand to
+ hundreds of bytes. That's why each ZZIP_FILE has a decompression
+ buffer attached.
+</P>
+<P>
+ All the other z_compr values are only of historical meaning,
+ the infozip unix tools will only create deflated content, and
+ the same applies to pkzip 2.x tools. If there would be any other
+ value than "0" or "8" then zziplib can not decompress it, simple
+ as that.
+</P>
+
+</section><section>
+<h3> ZZIP_DIR / ZZIP_FILE </h3>
+
+<P>
+ The ZZIP_DIR internal structures stores a posix handle to the
+ zip file, and a pointer to the parsed central directory block.
+ One can use readdir/rewinddir to walk each entry in the central
+ directory and compare with the filenames attached. And that's
+ what will be done at a zzip_open call to find the file entry.
+</P>
+<P>
+ There are a few more fields in the ZZIP_DIR structure, where
+ most of these are related to the use of this struct as a
+ shared recource. You can use zzip_file_open to walk the
+ preparsed central directory and return a new ZZIP_FILE handle
+ for that entry.
+</P>
+<P>
+ That ZZIP_FILE handle contains a back pointer its ZZIP_DIR
+ that it was made from - and the back pointer also serves as flag
+ that the ZZIP_FILE handle points to a file within a ZIP file as
+ opposed to wrapping a real file in the real directory tree.
+ Each ZZIP_FILE will increment a shared counter, so that the
+ next dir_close will be deferred until all ZZIP_FILE have been
+ destroyed.
+</P>
+<P>
+ Another optmization is the cache-pointer in the ZZIP_DIR. It is
+ quite common to read data entries sequentially, as that the
+ zip directory is scanned for files matching a specific pattern,
+ and when a match is seen, that file is openened. However, each
+ ZZIP_FILE needs a decompression buffer, and we keep a cache of
+ the last one freed so that it can be picked up right away for the
+ next zzip_file_open.
+</P>
+<P>
+ Note that using multiple zzip_open() directly, each will open
+ and parse a zip directory of its own. That's bloat both in
+ terms of memory consumption and execution speed. One should try
+ to take advantage of the feature that multiple ZZIP_FILE's can
+ share a common ZZIP_DIR with a common preparsed copy of the
+ zip's central directory. That can be done directly with using
+ zzip_file_open to use a ZZIP_DIR as a factory for ZZIP_FILE,
+ but also zzip_freopen can be used to reuse the old internal
+ central directory, instead of parsing it again.
+</P>
+<P>
+ And while zzip_freopen would release the old ZZIP_FILE handle
+ only resuing the ZZIP_DIR attached, one can use another routine
+ directly called zzip_open_shared that will create a ZZIP_FILE
+ from an existing ZZIP_FILE. Oh, and not need to worry about
+ problems when a filepath given to zzip_freopen() happens to
+ be in another place, another directory, another zip archive.
+ In that case, the old zzip's internal directory is freed and
+ the others directory read - the preparsed central directory
+ is only used if that is actually possible.
+</P>
+
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-sdl-rwops.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-sdl-rwops.htm
new file mode 100644
index 00000000000..539165490d2
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-sdl-rwops.htm
@@ -0,0 +1,90 @@
+<section> <date> 19. Aug 2001 </date>
+<h2> SDL rwops </h2> Example to make an SDL_rwops interface.
+
+<p><small> some <b>MSVC</b> help in
+ <a href="README.MSVC6">README.MSVC6</a> and
+ <a href="README.SDL">README.SDL</a>
+</small></p>
+
+<!--border-->
+
+<section>
+<h3> Source </h3>
+
+<P>
+ The example sources of the <a href="zziplib.html">zziplib library</a>
+ are usually put under the <a href="COPYING.ZLIB">ZLIB license</a> so
+ that you can reuse the code freely in your own projects. Here we talk
+ about the example that might be most useful for
+ <a href="http://libsdl.org">SDL</a> based programs.
+ Just copy the two files
+ <a href="SDL_rwops_zzip.h">SDL_rwops_zzip.h</a>
+ and
+ <a href="SDL_rwops_zzip.c">SDL_rwops_zzip.c</a>
+ to the directory with your other project sources, and make sure
+ to link it somehow to your programs. I did not make the effort to
+ create a separate library out of it - it would just export one
+ single function <tt>SDL_RWFromZZIP</tt> that has the same call-synopsis
+ like <tt>SDL_RWFromFile</tt> (but it can not (yet) write a zip-file).
+</P>
+
+<P>
+ The source file <a href="SDL_rwops_zzip.c">SDL_rwops_zzip.c</a> is
+ quite short - it just stores a ZZIP_FILE handle in the userdata
+ field of the <tt>SDL_rwops</tt> structure. The SDL'rwop calls will then
+ fetch that pointer and call the corresponding functions from the
+ <a href="zziplib.html">zziplib library</a>. Most of the glue code
+ is in the <tt>SDL_RWFromZZIP</tt> function that allocates an
+ <tt>SDL_rwops</tt> structure and fills the handler-functions
+ into the callback fields.
+</P>
+
+</section><section>
+<h3> Usage </h3>
+
+<P>
+ If you link this file to your project, remember that your executables
+ do now have additional dependencies - not only -lzzip to link with
+ the <a href="zziplib.html">zziplib library</a> - do not forget to
+ link with zlib library via -lz. Of course, there is a lib-config
+ script that you can use: `zzip-config --libs` will return these
+ linker-infos (unless you have a native-windows system - it is
+ shell-script).
+</P>
+
+<P>
+ As an example, replace that <tt>SDL_RWFromFile</tt> that accesses your
+ game-graphic files - these files are stored in shared/myapp
+ of course where they belong. When you've done that
+ then go to X/share/myapp and
+<br><code>&nbsp;&nbsp;&nbsp;
+ `(cd graphics/ && zip -9r ../graphics.zip .)` </code><br>
+ and rename the graphics/ subfolder - and still all your files
+ are found: a filepath like X/shared/graphics/game/greetings.bmp
+ will open X/shared/graphics.zip and return the zipped file
+ game/greetings.bmp in the zip-archive (for reading that is).
+</P>
+
+</section><section>
+<h3> Test </h3>
+
+<P>
+ The <a href="zziplib.html">zziplib</a> configure script does not
+ look for <a href="http://libsdl.org">SDL</a>. If you know that
+ you have <a href="http://libsdl.org">SDL</a> installed
+ then you can check this <tt>SDL_rwops</tt> example by using
+ <code><nobr>`make testsdl`</nobr></code>. This will compile the
+ two source files <a href="SDL_rwops_zzip.c">SDL_rwops_zzip.c</a>
+ and <a href="SDL_rwops_zzcat.c">SDL_rwops_zzcat.c</a> to be linked
+ together into an executable called <code>zzcatsdl</code>. The test
+ will continue with a <code><nobr>`zzcatsdl test/README`</nobr></code>
+ - just like it is done for <code><nobr>`make test3`</nobr></code>.
+</P>
+<P>
+ The corresponding section in the <a href="Makefile.am">Makefile.am</a>
+ is also an example how to use lib-config scripts to build files. Here
+ there is no build-processing that had been tweaked much by automake/autoconf.
+ Just use sdl-config and zzip-config to add the needed flags.
+</P>
+</section></section>
+
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-xor.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-xor.htm
new file mode 100644
index 00000000000..2434c2974a9
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-xor.htm
@@ -0,0 +1,77 @@
+<section> <date> 15. July 2002 </date>
+<h2> ZIP Obfuscation </h2> Using obfuscations like XOR.
+
+<!--border-->
+
+<section>
+<h3> The EXT/IO calls </h3>
+
+<P>
+ You really should read the section about the
+ <a href="zzip-extio.html">EXT/IO feature</a> of the zziplib since the
+ obfuscation routines are built on top of it. In order to use obfuscation,
+ you will generally need to use all the three additional argument that
+ can be passsed to _open_ext_io functions. For the XOR-example, only one
+ IO-handler is modified being the read()-call that will simply xor each
+ data byte upon read with a specific value. It two advantages - doing an
+ xor twice does yield the same data, so as a developer you do not have
+ to wonder about the encryption/decryption pair, and it is a stateless
+ obfuscation that does not need to know about the current position
+ within the zip-datafile or zippedfile-datatream.
+</P><P>
+ The examples provided just use a simple routine for xoring data that
+ is defined in all the three of the example programs: <pre>
+ static int xor_value = 0x55;
+ static zzip_ssize_t xor_read (int f, void* p, zzip_size_t l)
+ {
+ zzip_size_t r = read(f, p, l);
+ zzip_size_t x; char* q = p;
+ for (x=0; x &lt; r; x++) q[x] ^= xor_value;
+ return r;
+ }
+ </pre>
+</P><P>
+ and place this routine into the io-handlers after initializing
+ the structure: <pre>
+ zzip_init_io (&amp;xor_handlers, 0); xor_handlers.read = &amp;xor_read;
+ </pre>
+</P>
+
+</section><section>
+<h3> The examples </h3>
+
+<P>
+ There are three example programs. The first one is
+ <a href="zzxorcopy.c">zzxorcopy.c</a> which actually is not a zziplib
+ based program. It just opens a file via stdio, loops through all data bytes
+ it can read thereby xor'ing it, and writes it out to the output file. A
+ call like <code><nobr>"zzxorcopy file.zip file.dat"</nobr></code> will
+ create an obfuscated dat-file from a zip-file that has been possibly
+ create with the normal infozip tools or any other archive program to
+ generate a zip-file. The output dat-file is not recognized by normal
+ zip-enabled apps - the filemagic is obfuscated too. This output
+ dat-file however is subject to the other two example programs.
+</P><P>
+ The <a href="zzxordir.c">zzxordir.c</a> program will open such an obfuscated
+ zip file and decode the central directory of that zip. Everything is
+ still there in just the way it can be shown with the normal unzip
+ programs and routines. And the <a href="zzxorcat.c">zzxorcat.c</a> program
+ can extract data from this obfuscated zip - and print it un-obfuscated
+ to the screen. These example programs can help you jumpstart with
+ your own set of obfuscator routines, possibly more complex ones.
+</P><P>
+ By the way, just compare those with their non-xor counterparts that
+ you can find in <a href="zzdir.c">zzdir.c</a> and
+ <a href="zzxorcat.c">zzxorcat.c</a>. Notice that the difference is
+ in the setup part until the _open_ call after which one can just
+ use the normal zzip_ routines on that obfuscated file. This is
+ great for developing since you can start of with the magic-wrappers
+ working on real-files then slowly turning to pack-files that hold
+ most of the data and finally ending with a zip-only and obfuscated
+ dat-file for your project.
+</P>
+
+<p align="right"><small><small>
+<a href="copying.html">staticlinking?</a>
+</small></small></p>
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzip-zip.htm b/Build/source/libs/zziplib/zziplib-src/docs/zzip-zip.htm
new file mode 100644
index 00000000000..7297b5a10e5
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzip-zip.htm
@@ -0,0 +1,146 @@
+<section><date> 1. June 2000 </date>
+<h2> ZIP Access </h2> Accessing Zip Archives with ZLib Decompression
+
+<!--border-->
+
+<section>
+<h3> The Library </h3>
+
+<P>
+ The <a href="zziplib.html">zziplib library</a> offers users the
+ ability to easily extract data from files archived in a single
+ zip file. This way, programs that use many "read-only" files from
+ a program specific source directory can have a single zip
+ archive
+</P>
+<P>
+ This library offers only a (free) subset of compression methods
+ provided in a full implementation but that is well enough. The
+ idea here is that <tt>zip/unzip</tt> utilities can be used
+ to create archives that will later be read by using this library.
+ Yet those programmes (or a library with their functionality)
+ is not needed in that final operation.
+</P>
+
+</section><section>
+<h3> Using A Zip-File </h3>
+
+<P>
+ Before a file in the zip-archive is accessed, the application
+ must first get a handle to the central directory contained in the
+ zip-file. This is achieved by calling
+ <a href="zziplib.html#zzip_dir_open"> zzip_dir_open </a>
+ or
+ <a href="zziplib.html#zzip_dir_fdopen"> zzip_dir_fdopen </a>.
+ The directory entries in the zip-archives can be obtained
+ with
+ <a href="zziplib.html#zzip_dir_read"> zzip_dir_read </a>.
+ After being done, the zip-dir handle should be closed with
+ <a href="zziplib.html#zzip_dir_close"> zzip_dir_close </a>.
+</P>
+<p><pre> ZZIP_DIR* dir = zzip_dir_open("test.zip",0);
+ if (dir) {
+ ZZIP_DIRENT dirent;
+ if (zzip_dir_read(dir,&amp;dirent) {
+ /* show info for first file */
+ print("%s %i/%i", dirent.d_name, dirent.d_csize, dirent.st_size);
+ }
+ zzip_dir_close(dir);
+ }
+</pre></p>
+<P>
+ From the zip-dir handle a compressed file can be opened
+ for reading. This is achieved by using
+ <a href="zziplib.html#zzip_file_open"> zzip_file_open </a>
+ and providing it with the dir-handle and a name of the file.
+ The function
+ <a href="zziplib.html#zzip_file_read"> zzip_file_read </a>
+ is used to get pieces of uncompressed data from the file, and
+ the file-handle should be closed with
+ <a href="zziplib.html#zzip_file_close"> zzip_file_close </a>
+</P>
+<p><pre> ZZIP_FILE* fp = zzip_file_open(dir,"README",0);
+ if (fp) {
+ char buf[10];
+ zzip_ssize_t len = zzip_file_read(fp, buf, 10);
+ if (len) {
+ /* show head of README */
+ write(1, buf, len);
+ }
+ zzip_file_close(fp);
+ }
+</pre></p>
+
+</section><section>
+<h3> Magic Zipped Files </h3>
+
+<P>
+ There is actually no need to directly use the zip-centric functions
+ as described above. Instead there are magic replacements for the
+ posix calls <code>open/read/close</code> and
+ <code>opendir/readdir/closedir</code>. The prototypes of these
+ functions had been the guideline for the design of their magic
+ counterparts of the
+ <a href="zziplib.html">zziplib library</a>.
+</P>
+<P>
+ The magic functions are described in a separated document on
+ <a href="zzip-file.html"> Using Zipped Files </a>. In general,
+ the functions have a prefix <tt>zzip_</tt> and their argument
+ types have a prefix <tt>ZZIP_</tt> where appropriate. Calls
+ to the magic functions and the direct functions above can
+ be mixed as long as the magic functions have not been opening
+ a real file.
+</P>
+<P>
+ To detect a real file (or directory), the info functions
+ <a href="zziplib.html#zzip_file_real"> zzip_file_real </a>
+ and
+ <a href="zziplib.html#zzip_dir_real"> zzip_dir_real </a>
+ can be used.
+ If these return a true value, the standard posix functions
+ are more appropriate. The posix handles can be obtained with
+ a call to
+ <a href="zziplib.html#zzip_realdir"> zzip_realdir </a> and
+ <a href="zziplib.html#zzip_realfd"> zzip_realfd </a> respectively.
+</P>
+
+</section><section>
+<h3> Errors &amp; Infos </h3>
+
+<P>
+ There are a set of error and info functions available. To handle
+ error conditions specific to the
+ <a href="zziplib.html">zziplib library</a>
+ there are these functions:
+ <a href="zziplib.html#zzip_error"> zzip_error </a>,
+ <a href="zziplib.html#zzip_seterror"> zzip_seterror </a>
+ and their string representations with
+ <a href="zziplib.html#zzip_strerror"> zzip_strerror </a>,
+ <a href="zziplib.html#zzip_strerror_of"> zzip_strerror_of </a>.
+ The magic functions will map any of these specific library
+ error conditions to the more generic system <code>errno</code>
+ codes with
+ <a href="zziplib.html#zzip_errno"> zzip_errno </a>.
+</P>
+<P>
+ More information on stream can be obtained with
+ <a href="zziplib.html#zzip_dir_stat"> zzip_dir_stat </a> and
+ <a href="zziplib.html#zzip_dirhandle"> zzip_dirhandle. </a>
+ The latter is used to obtain the dir-handle that every zipped file
+ handle has even if not explicitly opened.
+</P>
+<P>
+ The usage of many functions are shown in the example programs
+ that come along with the
+ <a href="zziplib.html">zziplib library</a>. See the files
+ <a href="zzcat.c"> zzcat.c </a> and
+ <a href="zzdir.c"> zzdir.c </a>. The
+ <a href="zziptest.c"> zziptest.c </a> program needs the
+ private header file
+ <a href="zzip.h"> zzip.h </a> whereas the library installer
+ will only copy the public include file
+ <a href="zziplib.h"> zziplib.h </a> to your system's
+ <tt>include</tt> directory.
+</P>
+</section></section>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/__init__.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/__init__.py
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/commentmarkup.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/commentmarkup.py
new file mode 100644
index 00000000000..21c1621a2c7
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/commentmarkup.py
@@ -0,0 +1,85 @@
+from zzipdoc.match import Match
+
+def markup_link_syntax(text):
+ """ markup the link-syntax ` => somewhere ` in the text block """
+ return (text
+ & Match(r"(?m)(^|\s)\=\>\"([^\"]*)\"")
+ >> r"\1<link>\2</link>"
+ & Match(r"(?m)(^|\s)\=\>\'([^\']*)\'")
+ >> r"\1<link>\2</link>"
+ & Match(r"(?m)(^|\s)\=\>\s(\w[\w.]*\w\(\d+\))")
+ >> r"\1<link>\2</link>"
+ & Match(r"(?m)(^|\s)\=\>\s([^\s\,\.\!\?]+)")
+ >> r"\1<link>\2</link>")
+
+class CommentMarkup:
+ """ using a structure having a '.comment' item - it does pick it up
+ and enhances its text with new markups so that they can be represented
+ in xml. Use self.xml_text() to get markup text (knows 'this function') """
+ def __init__(self, header = None):
+ self.header = header
+ self.text = None # xml'text
+ def get_filename(self):
+ if self.header is None:
+ return None
+ return self.header.get_filename()
+ def parse(self, header = None):
+ if header is not None:
+ self.header = header
+ if self.header is None:
+ return False
+ comment = self.header.comment
+ try:
+ comment = self.header.get_otherlines()
+ except Exception as e:
+ pass
+ mode = ""
+ text = ""
+ for line in comment.split("\n"):
+ check = Match()
+ if line & check(r"^\s?\s?\s?[*]\s+[*]\s(.*)"):
+ if mode != "ul":
+ if mode: text += "</"+mode+">"
+ mode = "ul" ; text += "<"+mode+">"
+ line = check.group(1)
+ text += "<li><p> "+self.markup_para_line(line)+" </p></li>\n"
+ elif line & check(r"^\s?\s?\s?[*](.*)"):
+ if mode != "para":
+ if mode: text += "</"+mode+">"
+ mode = "para" ; text += "<"+mode+">"
+ line = check.group(1)
+ if line.strip() == "":
+ text += "</para><para>"+"\n"
+ else:
+ text += " "+self.markup_para_line(line)+"\n"
+ else:
+ if mode != "screen":
+ if mode: text += "</"+mode+">"
+ mode = "screen" ; text += "<"+mode+">"
+ text += " "+self.markup_screen_line(line)+"\n"
+ if mode: text += "</"+mode+">"+"\n"
+ self.text = (text
+ & Match(r"(<para>)(\s*[R]eturns)") >>r"\1This function\2"
+ & Match(r"(?s)<para>\s*</para><para>") >> "<para>"
+ & Match(r"(?s)<screen>\s*</screen>") >> "")
+ return True
+ def markup_screen_line(self, line):
+ return self.markup_line(line.replace("&","&amp;")
+ .replace("<","&lt;")
+ .replace(">","&gt;"))
+ def markup_para_line(self, line):
+ return markup_link_syntax(self.markup_line(line))
+ def markup_line(self, line):
+ return (line
+ .replace("<c>","<code>")
+ .replace("</c>","</code>"))
+ def xml_text(self, functionname = None):
+ if self.text is None:
+ if not self.parse(): return None
+ text = self.text
+ if functionname is not None:
+ def function(text): return "<function>"+text+"</function> function"
+ text = (text
+ .replace("this function", "the "+function(functionname))
+ .replace("This function", "The "+function(functionname)))
+ return text
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/dbk2htm.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/dbk2htm.py
new file mode 100644
index 00000000000..b2d362fbc24
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/dbk2htm.py
@@ -0,0 +1,25 @@
+from zzipdoc.match import Match
+
+class dbk2htm_conversion:
+ mapping = { "<screen>" : "<pre>", "</screen>" : "</pre>",
+ "<para>" : "<p>", "</para>" : "</p>" ,
+ "<function>" : "<link>", "</function>" : "</link>" }
+ def __init__(self):
+ pass
+ def section2html(self, text):
+ for str in self.mapping:
+ text = text.replace(str, self.mapping[str])
+ return text
+ def paramdef2html(self, text):
+ s = Match()
+ txt = text & s(r"\s+<paramdef>") >> r"\n<nobr>"
+ txt &= s(r"<paramdef>") >> r"<nobr>"
+ txt &= s(r"</paramdef>") >> r"</nobr>"
+ txt &= s(r"<parameters>") >> r"\n <code>"
+ txt &= s(r"</parameters>") >> r"</code>\n"
+ return txt
+
+def section2html(text):
+ return dbk2htm_conversion().section2html(text)
+def paramdef2html(text):
+ return dbk2htm_conversion().paramdef2html(text)
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/docbookdocument.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/docbookdocument.py
new file mode 100644
index 00000000000..f23790a9b4f
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/docbookdocument.py
@@ -0,0 +1,96 @@
+#! /usr/bin/env python3
+# -*- coding: UTF-8 -*-
+
+from zzipdoc.match import Match
+
+class DocbookDocument:
+ """ binds some xml content page with additional markup - in this
+ variant we set the rootnode container to 'reference' and the DTD
+ to the Docbook 4.1.2 version. Modify as you like."""
+ has_title_child = [ "book", "chapter", "section", "reference" ]
+ docbook_dtd = (
+ ' PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"'+"\n"+
+ ' "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"')
+ def __init__(self, o, filename = None):
+ self.o = o
+ self.rootnode = "reference"
+ self.filename = filename
+ self.title = ""
+ self.text = []
+ def add(self, text):
+ """ add some content """
+ self.text += [ text ]
+ return self
+ def get_title(self):
+ if self.title: return title
+ try: return self.text[0].get_title()
+ except Exception as e: pass
+ return self.title
+ def _xml_doctype(self, rootnode):
+ return "<!DOCTYPE "+rootnode+self.docbook_dtd+">"
+ def _xml_text(self, xml):
+ """ accepts adapter objects with .xml_text() """
+ try: return xml.xml_text()
+ except Exception as e: print("DocbookDocument/text " + e); pass
+ return str(xml)
+ def _fetch_rootnode(self, text):
+ fetch = Match(r"^[^<>]*<(\w+)\b")
+ if text & fetch: return fetch[1]
+ return self.rootnode
+ def _filename(self, filename):
+ if filename is not None:
+ self.filename = filename
+ filename = self.filename
+ if not filename & Match(r"\.\w+$"):
+ ext = self.o.docbook
+ if not ext: ext = "docbook"
+ filename += "."+ext
+ return filename
+ def save(self, filename = None):
+ filename = self._filename(filename)
+ print("writing '"+filename+"'")
+ if len(self.text) > 1:
+ self.save_all(filename)
+ else:
+ self.save_text(filename, self.text[0])
+ def save_text(self, filename, text):
+ try:
+ fd = open(filename, "w")
+ xml_text = self._xml_text(text)
+ rootnode = self._fetch_rootnode(xml_text)
+ doctype = self._xml_doctype(rootnode)
+ print(doctype, file=fd)
+ print(xml_text, file=fd)
+ fd.close()
+ return True
+ except IOError as e:
+ print("could not open '"+filename+"'file" + str(e))
+ return False
+ def save_all(self, filename):
+ assert len(self.text) > 1
+ try:
+ fd = open(filename, "w")
+ xml_text = self._xml_text(self.text[0])
+ rootnode = self._fetch_rootnode(xml_text)
+ if rootnode == self.rootnode:
+ rootnode = "book"
+ else:
+ rootnode = self.rootnode
+ doctype = self._xml_doctype(rootnode)
+ print(doctype, file=fd)
+ title = self.get_title()
+ if title and self.rootnode in self.has_title_child:
+ print("<"+self.rootnode+'><title>'+title+'</title>', file=fd)
+ elif title:
+ print("<"+self.rootnode+' id="'+title+'">', file=fd)
+ else:
+ print("<"+self.rootnode+'>', file=fd)
+ for text in self.text:
+ text = self._xml_text(text)
+ print(text)
+ print("</"+self.rootnode+">", file=fd)
+ fd.close()
+ return True
+ except IOError as e:
+ print("could not open '"+filename+"'file" + str(e))
+ return False
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionheader.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionheader.py
new file mode 100644
index 00000000000..7020b281c99
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionheader.py
@@ -0,0 +1,96 @@
+from zzipdoc.match import Match
+
+class FunctionHeader:
+ """ parsing the comment block that is usually presented before
+ a function prototype - the prototype part is passed along
+ for further parsing through => FunctionPrototype """
+ def __init__(self, functionheaderlist, comment, prototype):
+ self.parent = functionheaderlist
+ self.comment = comment
+ self.prototype = prototype
+ self.firstline = None
+ self.otherlines = None
+ self.titleline = None
+ self.alsolist = []
+ def get_filename(self):
+ return self.parent.get_filename()
+ def parse_firstline(self):
+ if not self.comment: return False
+ x = self.comment.find("\n")
+ if x > 0:
+ self.firstline = self.comment[:x]
+ self.otherlines = self.comment[x:]
+ elif x == 0:
+ self.firstline = "..."
+ self.otherlines = self.comment[1:x]
+ else:
+ self.firstline = self.comment
+ self.otherlines = ""
+ return True
+ def get_firstline(self):
+ if self.firstline is None:
+ if not self.parse_firstline(): return ""
+ return self.firstline
+ def get_otherlines(self):
+ if self.firstline is None:
+ if not self.parse_firstline(): return ""
+ return self.otherlines
+ def parse_titleline(self):
+ """ split extra-notes from the firstline - keep only titleline """
+ line = self.get_firstline()
+ if line is None: return False
+ self.titleline = line
+ self.alsolist = []
+ x = line.find("also:")
+ if x > 0:
+ self.titleline = line[:x]
+ for also in line[x+5:].split(","):
+ self.alsolist += [ also.strip() ]
+ self._alsolist = self.alsolist
+ return True
+ def get_alsolist(self):
+ """ gets the see-also notes from the firstline """
+ if self.titleline is None:
+ if not self.parse_titleline(): return None
+ return self.alsolist
+ def get_titleline(self):
+ """ gets firstline with see-also notes removed """
+ if self.titleline is None:
+ if not self.parse_titleline(): return False
+ return self.titleline
+ def get_title(self):
+ """ gets titleline unless that is a redirect """
+ titleline = self.get_titleline()
+ if titleline & Match(r"^\s*=>"): return ""
+ if titleline & Match(r"^\s*<link>"): return ""
+ return titleline
+ def get_prototype(self):
+ return self.prototype
+
+class FunctionHeaderList:
+ """ scan for comment blocks in the source file that are followed by
+ something quite like a C definition (probably a function definition).
+ Unpack the occurrences and fill self.comment and self.prototype. """
+ def __init__(self, textfile = None):
+ self.textfile = textfile # TextFile
+ self.children = None # src'style
+ def parse(self, textfile = None):
+ if textfile is not None:
+ self.textfile = textfile
+ if self.textfile is None:
+ return False
+ text = self.textfile.get_src_text()
+ m = Match(r"(?s)\/\*[*]+(?=\s)"
+ r"((?:.(?!\*\/))*.)\*\/"
+ r"([^/\{\}\;\#]+)[\{\;]")
+ self.children = []
+ for found in m.finditer(text):
+ child = FunctionHeader(self, found.group(1), found.group(2))
+ self.children += [ child ]
+ return len(self.children) > 0
+ def get_filename(self):
+ return self.textfile.get_filename()
+ def get_children(self):
+ if self.children is None:
+ if not self.parse(): return []
+ return self.children
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionlisthtmlpage.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionlisthtmlpage.py
new file mode 100644
index 00000000000..47dce7626cc
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionlisthtmlpage.py
@@ -0,0 +1,140 @@
+from __future__ import print_function
+
+from zzipdoc.options import *
+from zzipdoc.match import Match
+
+import os
+import os.path
+
+def short(filename):
+ while filename.startswith("../"):
+ filename = filename[3:]
+ if filename.startswith(os.sep):
+ parts = ["",""] + filename.split(os.sep)
+ return os.path.join(parts[-2], parts[-1])
+ return filename
+
+class FunctionListHtmlPage:
+ """ The main part here is to create a TOC (table of contents) at the
+ start of the page - linking down to the descriptions of the functions.
+ Sure we need to generate anchors on the fly. Additionally, all the
+ non-html (docbook-like) markup needs to be converted for ouput. -
+ each element to be added should implement get_name(), get_head() and
+ get_body() with the latter two having a xml_text() method."""
+ _null_table100 = '<table border="0" width="100%"' \
+ ' cellpadding="0" cellspacing="0">'
+ _ul_start = '<table width="100%">'
+ _ul_end = '</table>' + "\n"
+ _li_start = '<tr><td valign="top">'
+ _li_end = '</td></tr>' + "\n"
+ http_opengroup = "http://www.opengroup.org/onlinepubs/000095399/functions/"
+ http_zlib = "http://www.zlib.net/manual.html"
+ def __init__(self, o = None):
+ self.toc = ""
+ self.text = ""
+ self.head = ""
+ self.body = ""
+ self.anchors = []
+ self.o = o
+ if self.o is None: self.o = Options()
+ self.not_found_in_anchors = []
+ def cut(self):
+ self.text += ("<dt>"+self._ul_start+self.head+self._ul_end+"</dt>"+"\n"+
+ "<dd>"+self._ul_start+self.body+self._ul_end+"</dd>"+"\n")
+ self.head = ""
+ self.body = ""
+ def add(self, entry):
+ name = entry.get_name()
+ head_text = entry.head_xml_text()
+ body_text = entry.body_xml_text(name)
+ if not head_text:
+ print("no head_text for " + name)
+ return
+ try:
+ prespec = entry.head_get_prespec()
+ namespec = entry.head_get_namespec()
+ callspec = entry.head_get_callspec()
+ head_text = ("<code><b><function>"+namespec+"</function></b>"
+ +callspec+" : "+prespec+"</code>")
+ except Exception as e:
+ pass
+ try:
+ extraline = ""
+ title = entry.get_title()
+ filename = short(entry.get_filename())
+ if title:
+ subtitle = '&nbsp;<em>'+title+'</em>'
+ extraline = (self._null_table100+'<td> '+subtitle+' </td>'+
+ '<td align="right"> '+
+ '<em><small>'+filename+'</small></em>'+
+ '</td></table>' + "\n")
+ body_text = extraline + body_text
+ except Exception as e:
+ pass
+ def link(text):
+ return (text & Match("<function>(\w*)</function>")
+ >> "<link>\\1</link>")
+ def here(text):
+ has_function = Match("<function>(\w*)</function>")
+ if text & has_function:
+ func = has_function[1]
+ self.anchors += [ func ]
+ return (text & has_function
+ >> '<a name="'+"\\1"+'">'+"\\1"+'</a>')
+ else:
+ return text
+ self.toc += self._li_start+self.sane(link(head_text))+self._li_end
+ self.head += self._li_start+self.sane(here(head_text))+self._li_end
+ self.body += self._li_start+self.sane(body_text)+self._li_end
+ def get_title(self):
+ return self.o.package+" Library Functions"
+ def xml_text(self):
+ self.cut()
+ return ("<h2>"+self.get_title()+"</h2>"+
+ self.version_line()+
+ self.mainheader_line()+
+ self._ul_start+
+ self.resolve_links(self.toc)+
+ self._ul_end+
+ "<h3>Documentation</h3>"+
+ "<dl>"+
+ self.resolve_links(self.text)+
+ "</dl>")
+ def version_line(self):
+ if self.o.version:
+ return "<p>Version "+self.o.version+"</p>"
+ return ""
+ def mainheader_line(self):
+ if self.o.onlymainheader:
+ include = "#include &lt;"+self.o.onlymainheader+"&gt;"
+ return "<p><big><b><code>"+include+"</code></b></big></p>"
+ return ""
+ def resolve_links(self, text):
+ text &= (Match("(?s)<link>([^<>]*)(\(\d\))</link>")
+ >> (lambda x: self.resolve_external(x.group(1), x.group(2))))
+ text &= (Match("(?s)<link>(\w+)</link>")
+ >> (lambda x: self.resolve_internal(x.group(1))))
+ if len(self.not_found_in_anchors):
+ print("not found in anchors: {}".format(self.not_found_in_anchors))
+ return (text & Match("(?s)<link>([^<>]*)</link>")
+ >> "<code>\\1</code>")
+ def resolve_external(self, func, sect):
+ x = Match()
+ if func & x("^zlib(.*)"):
+ return ('<a href="'+self.http_zlib+x[1]+'">'+
+ "<code>"+func+sect+"</code>"+'</a>')
+ if sect & x("[23]"):
+ return ('<a href="'+self.http_opengroup+func+'.html">'+
+ "<code>"+func+sect+"</code>"+'</a>')
+ return "<code>"+func+"<em>"+sect+"</em></sect>"
+ def resolve_internal(self, func):
+ if func in self.anchors:
+ return '<code><a href="#'+func+'">'+func+"</a></code>"
+ if func not in self.not_found_in_anchors:
+ self.not_found_in_anchors += [ func ]
+ return "<code><u>"+func+"</u></code>"
+ def sane(self, text):
+ return (text
+ .replace("<function>", "<code>")
+ .replace("</function>", "</code>"))
+
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionlistreference.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionlistreference.py
new file mode 100644
index 00000000000..7b7560395c4
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionlistreference.py
@@ -0,0 +1,272 @@
+#! /usr/bin/env python
+# -*- coding: UTF-8 -*-
+from __future__ import print_function
+
+from zzipdoc.match import Match
+from zzipdoc.htm2dbk import *
+
+class FunctionListReference:
+ """ Creating a docbook-style <reference> list of <refentry> parts
+ that will each be translated into a unix manual page in a second step """
+ def __init__(self, o = None):
+ self.o = o
+ self.pages = []
+ self.entry = None
+ def cut(self):
+ if not self.entry: return
+ self.pages += [ self.entry ]
+ self.entry = None
+ def add(self, entry):
+ name = entry.get_name()
+ description = entry.body_xml_text(name)
+ funcsynopsis = entry.head_xml_text()
+ if not funcsynopsis:
+ print("no funcsynopsis for " + name)
+ return
+ if self.entry is None:
+ self.entry = FunctionListRefEntry(entry, self.o)
+ self.entry.funcsynopsisinfo = entry.get_mainheader()
+ self.entry.refpurpose = entry.get_title()
+ self.entry.refentrytitle = entry.get_name()
+ # self.entry.refname = entry.get_name()
+ self.entry.funcsynopsis_list += [ funcsynopsis ]
+ self.entry.description_list += [ description ]
+ self.entry.refname_list += [ name ]
+ if entry.list_seealso():
+ for item in entry.list_seealso():
+ if item not in self.entry.seealso_list:
+ self.entry.seealso_list += [ item ]
+ def get_title(self):
+ return self.o.package+" Function List"
+ def xml_text(self):
+ T = "<reference><title>"+self.get_title()+"</title>\n"
+ for item in self.pages:
+ text = item.refentry_text()
+ if not text: "OOPS, no text for", item.name ; continue
+ T += self.sane(text)
+ T += "</reference>\n"
+ return T
+ def sane(self, text):
+ return (html2docbook(text)
+ .replace("<link>","<function>")
+ .replace("</link>","</function>")
+ .replace("<fu:protospec>","<funcprototype>")
+ .replace("</fu:protospec>","</funcprototype>")
+ .replace("<fu:prespec>","<funcdef>")
+ .replace("</fu:prespec>","")
+ .replace("<fu:namespec>","")
+ .replace("</fu:namespec>","</funcdef>")
+ .replace("</fu:callspec>","</paramdef>")
+ .replace("<fu:callspec>","<paramdef>"))
+
+
+class FunctionListRefEntry:
+ def __init__(self, func, o):
+ """ initialize the fields needed for a man page entry - the fields are
+ named after the docbook-markup that encloses (!!) the text we store
+ the entries like X.refhint = "hello" will be printed therefore as
+ <refhint>hello</refhint>. Names with underscores are only used as
+ temporaries but they are memorized, perhaps for later usage. """
+ self.name = func.get_name()
+ self.refhint = "\n<!--========= "+self.name+" (3) ============-->\n"
+ self.refentry = None
+ self.refentry_date = o.version.strip() #! //refentryinfo/date
+ self.refentry_productname = o.package.strip() #! //refentryinfo/prod*
+ self.refentry_title = None #! //refentryinfo/title
+ self.refentryinfo = None #! override
+ self.manvolnum = "3" # //refmeta/manvolnum
+ self.refentrytitle = None # //refmeta/refentrytitle
+ self.refmeta = None # override
+ self.refpurpose = None # //refnamediv/refpurpose
+ self.refname = None # //refnamediv/refname
+ self.refname_list = []
+ self.refnamediv = None # override
+ self.mainheader = func.get_mainheader()
+ self.includes = func.get_includes()
+ self.funcsynopsisinfo = "" # //funcsynopsisdiv/funcsynopsisinfo
+ self.funcsynopsis = None # //funcsynopsisdiv/funcsynopsis
+ self.funcsynopsis_list = []
+ self.description = None
+ self.description_list = []
+ # optional sections
+ self.authors_list = [] # //sect1[authors]/listitem
+ self.authors = None # override
+ self.copyright = None
+ self.copyright_list = []
+ self.seealso = None
+ self.seealso_list = []
+ if func.list_seealso():
+ for item in func.list_seealso():
+ self.seealso_list += [ item ]
+ self.file_authors = None
+ if func.get_authors():
+ self.file_authors = func.get_authors()
+ self.authors_list += [ self.file_authors ]
+ self.file_copyright = None
+ if func.get_copyright():
+ self.file_copyright = func.get_copyright()
+ self.copyright_list += [ self.file_copyright ]
+ #fu
+ def refentryinfo_text(self):
+ """ the manvol formatter wants to render a footer line and header line
+ on each manpage and such info is set in <refentryinfo> """
+ if self.refentryinfo:
+ return self.refentryinfo
+ if self.refentry_date and \
+ self.refentry_productname and \
+ self.refentry_title: return (
+ "\n <date>"+self.refentry_date+"</date>"+
+ "\n <productname>"+self.refentry_productname+"</productname>"+
+ "\n <title>"+self.refentry_title+"</title>")
+ if self.refentry_date and \
+ self.refentry_productname: return (
+ "\n <date>"+self.refentry_date+"</date>"+
+ "\n <productname>"+self.refentry_productname+"</productname>")
+ return ""
+ def refmeta_text(self):
+ """ the manvol formatter needs to know the filename of the manpage to
+ be made up and these parts are set in <refmeta> actually """
+ if self.refmeta:
+ return self.refmeta
+ if self.manvolnum and self.refentrytitle:
+ return (
+ "\n <refentrytitle>"+self.refentrytitle+"</refentrytitle>"+
+ "\n <manvolnum>"+self.manvolnum+"</manvolnum>")
+ if self.manvolnum and self.name:
+ return (
+ "\n <refentrytitle>"+self.name+"</refentrytitle>"+
+ "\n <manvolnum>"+self.manvolnum+"</manvolnum>")
+ return ""
+ def refnamediv_text(self):
+ """ the manvol formatter prints a header line with a <refpurpose> line
+ and <refname>'d functions that are described later. For each of
+ the <refname>s listed here, a mangpage is generated, and for each
+ of the <refname>!=<refentrytitle> then a symlink is created """
+ if self.refnamediv:
+ return self.refnamediv
+ if self.refpurpose and self.refname:
+ return ("\n <refname>"+self.refname+'</refname>'+
+ "\n <refpurpose>"+self.refpurpose+" </refpurpose>")
+ if self.refpurpose and self.refname_list:
+ T = ""
+ for refname in self.refname_list:
+ T += "\n <refname>"+refname+'</refname>'
+ T += "\n <refpurpose>"+self.refpurpose+" </refpurpose>"
+ return T
+ return ""
+ def funcsynopsisdiv_text(self):
+ """ refsynopsisdiv shall be between the manvol mangemaent information
+ and the reference page description blocks """
+ T=""
+ if self.funcsynopsis:
+ T += "\n<funcsynopsis>"
+ if self.funcsynopsisinfo:
+ T += "\n<funcsynopsisinfo>"+ self.funcsynopsisinfo + \
+ "\n</funcsynopsisinfo>\n"
+ T += self.funcsynopsis + \
+ "\n</funcsynopsis>\n"
+ if self.funcsynopsis_list:
+ T += "\n<funcsynopsis>"
+ if self.funcsynopsisinfo:
+ T += "\n<funcsynopsisinfo>"+ self.funcsynopsisinfo + \
+ "\n</funcsynopsisinfo>\n"
+ for funcsynopsis in self.funcsynopsis_list:
+ T += funcsynopsis
+ T += "\n</funcsynopsis>\n"
+ #fi
+ return T
+ def description_text(self):
+ """ the description section on a manpage is the main part. Here
+ it is generated from the per-function comment area. """
+ if self.description:
+ return self.description
+ if self.description_list:
+ T = ""
+ for description in self.description_list:
+ if not description: continue
+ T += description
+ if T.strip() != "": return T
+ return "<para>(missing description)</para>"
+ def authors_text(self):
+ """ part of the footer sections on a manpage and a description of
+ original authors. We prever an itimizedlist to let the manvol
+ show a nice vertical aligment of authors of this ref item """
+ if self.authors:
+ return self.authors
+ if self.authors_list:
+ T = "<itemizedlist>"
+ previous=""
+ for authors in self.authors_list:
+ if not authors: continue
+ if previous == authors: continue
+ T += "\n <listitem><para>"+authors+"</para></listitem>"
+ previous = authors
+ T += "</itemizedlist>"
+ return T
+ if self.authors:
+ return self.authors
+ return ""
+ def copyright_text(self):
+ """ the copyright section is almost last on a manpage and purely
+ optional. We list the part of the per-file copyright info """
+ if self.copyright:
+ return self.copyright
+ """ we only return the first valid instead of merging them """
+ if self.copyright_list:
+ T = ""
+ for copyright in self.copyright_list:
+ if not copyright: continue
+ return copyright # !!!
+ return ""
+ def seealso_text(self):
+ """ the last section on a manpage is called 'SEE ALSO' usually and
+ contains a comma-separated list of references. Some manpage
+ viewers can parse these and convert them into hyperlinks """
+ if self.seealso:
+ return self.seealso
+ if self.seealso_list:
+ T = ""
+ for seealso in self.seealso_list:
+ if not seealso: continue
+ if T: T += ", "
+ T += seealso
+ if T: return T
+ return ""
+ def refentry_text(self, id=None):
+ """ combine fields into a proper docbook refentry """
+ if id is None:
+ id = self.refentry
+ if id:
+ T = '<refentry id="'+id+'">'
+ else:
+ T = '<refentry>' # this is an error
+
+ if self.refentryinfo_text():
+ T += "\n<refentryinfo>"+ self.refentryinfo_text()+ \
+ "\n</refentryinfo>\n"
+ if self.refmeta_text():
+ T += "\n<refmeta>"+ self.refmeta_text() + \
+ "\n</refmeta>\n"
+ if self.refnamediv_text():
+ T += "\n<refnamediv>"+ self.refnamediv_text() + \
+ "\n</refnamediv>\n"
+ if self.funcsynopsisdiv_text():
+ T += "\n<refsynopsisdiv>\n"+ self.funcsynopsisdiv_text()+ \
+ "\n</refsynopsisdiv>\n"
+ if self.description_text():
+ T += "\n<refsect1><title>Description</title> " + \
+ self.description_text() + "\n</refsect1>"
+ if self.authors_text():
+ T += "\n<refsect1><title>Author</title> " + \
+ self.authors_text() + "\n</refsect1>"
+ if self.copyright_text():
+ T += "\n<refsect1><title>Copyright</title> " + \
+ self.copyright_text() + "\n</refsect1>\n"
+ if self.seealso_text():
+ T += "\n<refsect1><title>See Also</title><para> " + \
+ self.seealso_text() + "\n</para></refsect1>\n"
+
+ T += "\n</refentry>\n"
+ return T
+ #fu
+#end
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionprototype.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionprototype.py
new file mode 100644
index 00000000000..23a107680cf
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/functionprototype.py
@@ -0,0 +1,60 @@
+from zzipdoc.match import Match
+
+class FunctionPrototype:
+ """ takes a single function prototype line (cut from some source file)
+ and parses it into the relevant portions 'prespec', 'namespec' and
+ 'callspec'. Additionally we present 'name' from the namespec that is
+ usually used as the filename stem for a manual page """
+ def __init__(self, functionheader = None):
+ self.functionheader = functionheader
+ self.prespec = None
+ self.namespec = None
+ self.callspec = None
+ self.name = None
+ def get_functionheader(self):
+ return self.functionheader
+ def get_prototype(self):
+ if self.functionheader is None:
+ return None
+ return self.functionheader.get_prototype()
+ def get_filename(self):
+ if self.functionheader is None:
+ return None
+ return self.functionheader.get_filename()
+ def parse(self, functionheader = None):
+ if functionheader is not None:
+ self.functionheader = functionheader
+ if self.functionheader is None:
+ return False
+ found = Match()
+ prototype = self.get_prototype()
+ if prototype & found(r"(?s)^(.*[^.])"
+ r"\b(\w[\w.]*\w)\b"
+ r"(\s*\(.*)$"):
+ self.prespec = found.group(1).lstrip()
+ self.namespec = found.group(2)
+ self.callspec = found.group(3).lstrip()
+ self.name = self.namespec.strip()
+ return True
+ return False
+ def _assert_parsed(self):
+ if self.name is None:
+ return self.parse()
+ return True
+ def get_prespec(self):
+ if not self._assert_parsed(): return None
+ return self.prespec
+ def get_namespec(self):
+ if not self._assert_parsed(): return None
+ return self.namespec
+ def get_callspec(self):
+ if not self._assert_parsed(): return None
+ return self.callspec
+ def get_name(self):
+ if not self._assert_parsed(): return None
+ return self.name
+ def xml_text(self):
+ if not self.namespec: return self.namespec
+ return ("<fu:protospec><fu:prespec>"+self.prespec+"</fu:prespec>"+
+ "<fu:namespec>"+self.namespec+"</fu:namespec>"+
+ "<fu:callspec>"+self.callspec+"</fu:callspec></fu:protospec>")
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/htm2dbk.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/htm2dbk.py
new file mode 100644
index 00000000000..d0f17cc3d23
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/htm2dbk.py
@@ -0,0 +1,169 @@
+#! /usr/bin/env python3
+
+"""
+this file converts simple html text into a docbook xml variant.
+The mapping of markups and links is far from perfect. But all we
+want is the docbook-to-pdf converter and similar technology being
+present in the world of docbook-to-anything converters. """
+
+from datetime import date
+from zzipdoc.match import Match
+import sys
+
+m = Match
+
+class htm2dbk_conversion_base:
+ regexlist = [
+ m()("</[hH]2>(.*)", "m") >> "</title>\n<subtitle>\\1</subtitle>",
+ m()("<[hH]2>") >> "<sect1 id=\"--filename--\"><title>",
+ m()("<[Pp]([> ])","m") >> "<para\\1",
+ m()("</[Pp]>") >> "</para>",
+ m()("<(pre|PRE)>") >> "<screen>",
+ m()("</(pre|PRE)>") >> "</screen>",
+ m()("<[hH]3>") >> "<sect2><title>",
+ m()("</[hH]3>((?:.(?!<sect2>))*.?)", "s") >> "</title>\\1</sect2>",
+ m()("<!doctype [^<>]*>","s") >> "",
+ m()("<!DOCTYPE [^<>]*>","s") >> "",
+ m()("(<\w+\b[^<>]*\swidth=)(\d+\%)","s") >> "\\1\"\\2\"",
+ m()("(<\w+\b[^<>]*\s\w+=)(\d+)","s") >> "\\1\"\\2\"",
+ m()("&&") >> "\&amp\;\&amp\;",
+ m()("\$\<") >> "\$\&lt\;",
+ m()("&(\w+[\),])") >> "\&amp\;\\1",
+ m()("(</?)span(\s[^<>]*)?>","s") >> "\\1phrase\\2>",
+ m()("(</?)small(\s[^<>]*)?>","s") >> "\\1note\\2>",
+ m()("(</?)(b|em|i)>")>> "\\1emphasis>",
+ m()("(</?)(li)>") >> "\\1listitem>",
+ m()("(</?)(ul)>") >> "\\1itemizedlist>",
+ m()("(</?)(ol)>") >> "\\1orderedlist>",
+ m()("(</?)(dl)>") >> "\\1variablelist>",
+ m()("<dt\b([^<>]*)>","s") >> "<varlistentry\\1><term>",
+ m()("</dt\b([^<>]*)>","s") >> "</term>",
+ m()("<dd\b([^<>]*)>","s") >> "<listitem\\1>",
+ m()("</dd\b([^<>]*)>","s") >> "</listitem></varlistentry>",
+ m()("<table\b([^<>]*)>","s")
+ >> "<informaltable\\1><tgroup cols=\"2\"><tbody>",
+ m()("</table\b([^<>]*)>","s") >> "</tbody></tgroup></informaltable>",
+ m()("(</?)tr(\s[^<>]*)?>","s") >> "\\1row\\2>",
+ m()("(</?)td(\s[^<>]*)?>","s") >> "\\1entry\\2>",
+ m()("<informaltable\b[^<>]*>\s*<tgroup\b[^<>]*>\s*<tbody>"+
+ "\s*<row\b[^<>]*>\s*<entry\b[^<>]*>\s*<informaltable\b","s")
+ >> "<informaltable",
+ m()("</informaltable>\s*</entry>\s*</row>"+
+ "\s*</tbody>\s*</tgroup>\s*</informaltable>", "s")
+ >> "</informaltable>",
+ m()("(<informaltable[^<>]*\swidth=\"100\%\")","s") >> "\\1 pgwide=\"1\"",
+ m()("(<tbody>\s*<row[^<>]*>\s*<entry[^<>]*\s)(width=\"50\%\")","s")
+ >> "<colspec colwidth=\"1*\" /><colspec colwidth=\"1*\" />\n\\1\\2",
+ m()("<nobr>([\'\`]*)<tt>") >> "<cmdsynopsis>\\1",
+ m()("</tt>([\'\`]*)</nobr>") >> "\\1</cmdsynopsis>",
+ m()("<nobr><(?:tt|code)>([\`\"\'])") >> "<cmdsynopsis>\\1",
+ m()("<(?:tt|code)><nobr>([\`\"\'])") >> "<cmdsynopsis>\\1",
+ m()("([\`\"\'])</(?:tt|code)></nobr>") >> "\\1</cmdsynopsis>",
+ m()("([\`\"\'])</nobr></(?:tt|code)>") >> "\\1</cmdsynopsis>",
+ m()("(</?)tt>") >> "\\1constant>",
+ m()("(</?)code>") >> "\\1literal>",
+ m()(">([^<>]+)<br>","s") >> "><highlights>\\1</highlights>",
+ m()("<br>") >> "<br />",
+ # m()("<date>") >> "<sect1info><date>",
+ # m()("</date>") >> "</date></sect1info>",
+ m()("<reference>") >> "<reference id=\"reference\">" >> 1,
+ m()("<a\s+href=\"((?:http|ftp|mailto):[^<>]+)\"\s*>((?:.(?!</a>))*.)</a>"
+ ,"s") >> "<ulink url=\"\\1\">\\2</ulink>",
+ m()("<a\s+href=\"zziplib.html\#([\w_]+)\"\s*>((?:.(?!</a>))*.)</a>","s")
+ >> "<link linkend=\"$1\">$2</link>",
+ m()("<a\s+href=\"(zziplib.html)\"\s*>((?:.(?!</a>))*.)</a>","s")
+ >> "<link linkend=\"reference\">$2</link>",
+ m()("<a\s+href=\"([\w-]+[.]html)\"\s*>((?:.(?!</a>))*.)</a>","s")
+ >> "<link linkend=\"\\1\">\\2</link>",
+ m()("<a\s+href=\"([\w-]+[.](?:h|c|am|txt))\"\s*>((?:.(?!</a>))*.)</a>"
+ ,"s") >> "<ulink url=\"file:\\1\">\\2</ulink>",
+ m()("<a\s+href=\"([A-Z0-9]+[.][A-Z0-9]+)\"\s*>((?:.(?!</a>))*.)</a>","s")
+ >> "<ulink url=\"file:\\1\">\\2</ulink>"
+ # m()("(</?)subtitle>") >> "\\1para>"
+ # $_ .= "</sect1>" if /<sect1[> ]/
+ ]
+ regexlist2 = [
+ m()(r"<br\s*/?>") >> "",
+ m()(r"(</?)em>") >> r"\1emphasis>",
+ m()(r"<code>") >> "<userinput>",
+ m()(r"</code>") >> "</userinput>",
+ m()(r"<link>") >> "<function>",
+ m()(r"</link>") >> "</function>",
+ m()(r"(?s)\s*</screen>") >> "</screen>",
+ # m()(r"<ul>") >> "</para><programlisting>\n",
+ # m()(r"</ul>") >> "</programlisting><para>",
+ m()(r"<ul>") >> "<itemizedlist>",
+ m()(r"</ul>") >> "</itemizedlist>",
+ # m()(r"<li>") >> "",
+ # m()(r"</li>") >> ""
+ m()(r"<li>") >> "<listitem><para>",
+ m()(r"</li>") >> "</para></listitem>\n",
+ ]
+class htm2dbk_conversion(htm2dbk_conversion_base):
+ def __init__(self):
+ self.version = "" # str(date.today)
+ self.filename = "."
+ def convert(self,text): # $text
+ txt = text.replace("<!--VERSION-->", self.version)
+ for conv in self.regexlist:
+ txt &= conv
+ return txt.replace("--filename--", self.filename)
+ def convert2(self,text): # $text
+ txt = text.replace("<!--VERSION-->", self.version)
+ for conv in self.regexlist:
+ txt &= conv
+ return txt
+
+class htm2dbk_document(htm2dbk_conversion):
+ """ create document, add(text) and get the value() """
+ doctype = (
+ '<!DOCTYPE book PUBLIC "-//OASIS//DTD'+
+ ' DocBook XML V4.1.2//EN"'+"\n"+
+ ' "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">'+
+ "\n")
+ book_start = '<book><chapter><title>Documentation</title>'+"\n"
+ book_end_chapters = '</chapter>'+"\n"
+ book_end = '</book>'+"\n"
+ def __init__(self):
+ htm2dbk_conversion.__init__(self)
+ self.text = self.doctype + self.book_start
+ def add(self,text):
+ if self.text & m()("<reference"):
+ self.text += self.book_end_chapters ; self.book_end_chapters = ""
+ self.text += self.convert(text).replace(
+ "<br />","") & (
+ m()("<link>([^<>]*)</link>") >> "<function>\\1</function>") & (
+ m()("(?s)(<refentryinfo>\s*)<sect1info>" +
+ "(<date>[^<>]*</date>)</sect1info>") >> "\\1\\2")
+ def value(self):
+ return self.text + self.book_end_chapters + self.book_end
+
+def htm2dbk_files(args):
+ doc = htm2dbk_document()
+ for filename in args:
+ try:
+ f = open(filename, "r")
+ doc.filename = filename
+ doc.add(f.read())
+ f.close()
+ except IOError:
+ print("can not open "+filename, file=sys.stderr)
+ return doc.value()
+
+def html2docbook(text):
+ """ the C comment may contain html markup - simulate with docbook tags """
+ return htm2dbk_conversion().convert2(text)
+
+if __name__ == "__main__":
+ from optparse import OptionParser
+ cmdline = OptionParser("%prog [options] files...")
+ cmdline.add_option("-o", "--into", metavar="FILE", default="")
+ opt, args = cmdline.parse_args()
+ result = htm2dbk_files(args)
+ if not opt.into:
+ print(result)
+ else:
+ f = open(opt.into, "w")
+ f.write(result)
+ f.close()
+
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/htmldocument.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/htmldocument.py
new file mode 100644
index 00000000000..4f771d87cc9
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/htmldocument.py
@@ -0,0 +1,118 @@
+# -*- coding: UTF-8 -*-
+from __future__ import print_function
+
+from zzipdoc.match import Match
+
+class HtmlDocument:
+ """ binds some html content page with additional markup - in this
+ base version it is just the header information while other variants
+ might add navigation items around the content block elements """
+ def __init__(self, o, filename = None):
+ self.o = o
+ self.filename = filename
+ self.title = ""
+ self.meta = []
+ self.style = []
+ self.text = []
+ self.navi = None
+ def meta(self, style):
+ """ add some header meta entry """
+ self.meta += [ meta ]
+ return self
+ def style(self, style):
+ """ add a style block """
+ self.style += [ style ]
+ return self
+ def add(self, text):
+ """ add some content """
+ self.text += [ text ]
+ return self
+ def get_title(self):
+ if self.title: return self.title
+ try: return self.text[0].get_title()
+ except Exception as e: pass
+ return self.title
+ def _html_meta(self, meta):
+ """ accepts adapter objects with .html_meta() """
+ try: return meta.html_meta()
+ except Exception as e: pass
+ return str(meta)
+ def _html_style(self, style):
+ """ accepts adapter objects with .html_style() and .xml_style() """
+ ee = None
+ try: return style.html_style()
+ except Exception as e: ee = e; pass
+ try: return style.xml_style()
+ except Exception as e: print("HtmlDocument/style {} {}".format(ee, e)); pass
+ try: return str(style)
+ except Exception as e: print("HtmlDocument/style {}".format(e)); return ""
+ def _html_text(self, html):
+ """ accepts adapter objects with .html_text() and .xml_text() """
+ ee = None
+ try: return html.html_text()
+ except Exception as e: ee = e; pass
+ try: return html.xml_text()
+ except Exception as e: print("HtmlDocument/text {} {}".format(ee, e)); pass
+ try: return str(html)
+ except Exception as e: print("HtmlDocument/text {}".format(e)); return "&nbsp;"
+ def navigation(self):
+ if self.navi:
+ return self.navi
+ if self.o.body:
+ try:
+ fd = open(self.o.body, "r")
+ self.navi = fd.read()
+ fd.close()
+ return self.navi
+ except Exception as e:
+ pass
+ return None
+ def html_header(self):
+ navi = self.navigation()
+ if not navi:
+ T = "<html><head>"
+ title = self.get_title()
+ if title:
+ T += "<title>"+title+"</title>"
+ T += "\n"
+ for style in self.style:
+ T += self._html_style(style)
+ T += "\n"
+ return T+"</head><body>"
+ else:
+ title = self.get_title()
+ return navi & (
+ Match(r"<!--title-->") >> " - "+title) & (
+ Match(r"<!--VERSION-->") >> self.o.version) & (
+ Match(r"(?m).*</body></html>") >> "")
+ def html_footer(self):
+ navi = self.navigation()
+ if not navi:
+ return "</body></html>"
+ else:
+ return navi & (
+ Match(r"(?m)(.*</body></html>)") >> "%&%&%&%\\1") & (
+ Match(r"(?s).*%&%&%&%") >> "")
+ def _filename(self, filename):
+ if filename is not None:
+ self.filename = filename
+ filename = self.filename
+ if not filename & Match(r"\.\w+$"):
+ ext = self.o.html
+ if not ext: ext = "html"
+ filename += "."+ext
+ return filename
+ def save(self, filename = None):
+ filename = self._filename(filename)
+ print("writing '"+filename+"'")
+ try:
+ fd = open(filename, "w")
+ print(self.html_header(), file=fd)
+ for text in self.text:
+ print(self._html_text(text), file=fd)
+ print(self.html_footer(), file=fd)
+ fd.close()
+ return True
+ except IOError as e:
+ print("could not open '"+filename+"'file {}".format(e))
+ return False
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/match.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/match.py
new file mode 100644
index 00000000000..a8bbd1f5933
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/match.py
@@ -0,0 +1,111 @@
+#! /usr/bin/python
+# -*- coding: utf-8 -*-
+# @creator (C) 2003 Guido U. Draheim
+# @license http://creativecommons.org/licenses/by-nc-sa/2.0/de/
+
+from __future__ import print_function
+
+import re
+
+try:
+ basestring
+except NameError:
+ basestring = str
+
+# ---------------------------------------------------------- Regex Match()
+# beware, stupid python interprets backslashes in replace-parts only partially!
+class MatchReplace:
+ """ A MatchReplace is a mix of a Python Pattern and a Replace-Template """
+ def __init__(self, matching, template, count = 0, flags = None):
+ """ setup a substition from regex 'matching' into 'template',
+ the replacement count default of 0 will replace all occurrences.
+ The first argument may be a Match object or it is a string that
+ will be turned into one by using Match(matching, flags). """
+ self.template = template
+ MatchReplace.__call__(self, matching, template, count, flags)
+ def __call__(self, matching, template = None, count = 0, flags = None):
+ """ other than __init__ the template may be left off to be unchanged"""
+ if isinstance(count, basestring): # count/flags swapped over?
+ flags = count; count = 0
+ if isinstance(matching, Match):
+ self.matching = matching
+ else:
+ self.matching = Match()(matching, flags) ## python 2.4.2 bug
+ if template is not None:
+ self.template = template
+ self.count = count
+ def __and__(self, string):
+ """ z = MatchReplace('foo', 'bar') & 'foo'; assert z = 'bar' """
+ text, self.matching.replaced = \
+ self.matching.regex.subn(self.template, string, self.count)
+ return text
+ def __rand__(self, string):
+ """ z = 'foo' & Match('foo') >> 'bar'; assert z = 'bar' """
+ text, self.matching.replaced = \
+ self.matching.regex.subn(self.template, string, self.count)
+ return text
+ def __iand__(self, string):
+ """ x = 'foo' ; x &= Match('foo') >> 'bar'; assert x == 'bar' """
+ string, self.matching.replaced = \
+ self.matching.regex.subn(self.template, string, self.count)
+ return string
+ def __rshift__(self, count):
+ " shorthand to set the replacement count: Match('foo') >> 'bar' >> 1 "
+ self.count = count ; return self
+ def __rlshift__(self, count):
+ self.count = count ; return self
+
+class Match:
+ """ A Match is actually a mix of a Python Pattern and MatchObject """
+ def __init__(self, pattern = None, flags = None):
+ """ flags is a string: 'i' for case-insensitive etc.; it is just
+ short for a regex prefix: Match('foo','i') == Match('(?i)foo') """
+ Match.__call__(self, pattern, flags)
+ def __call__(self, pattern, flags = None):
+ assert isinstance(pattern, str) or pattern is None
+ assert isinstance(flags, str) or flags is None
+ self.replaced = 0 # set by subn() inside MatchReplace
+ self.found = None # set by search() to a MatchObject
+ self.pattern = pattern
+ if pattern is not None:
+ if flags:
+ self.regex = re.compile("(?"+flags+")"+self.pattern)
+ else:
+ self.regex = re.compile(self.pattern)
+ return self
+ def __repr__(self):
+ return self.pattern
+ def __truth__(self):
+ return self.found is not None
+ def __and__(self, string):
+ self.found = self.regex.search(string)
+ return self.__truth__()
+ def __rand__(self, string):
+ self.found = self.regex.search(string)
+ return self.__truth__()
+ def __rshift__(self, template):
+ return MatchReplace(self, template)
+ def __rlshift__(self, template):
+ return MatchReplace(self, template)
+ def __getitem__(self, index):
+ return self.group(index)
+ def group(self, index):
+ assert self.found is not None
+ return self.found.group(index)
+ def finditer(self, string):
+ return self.regex.finditer(string)
+
+if __name__ == "__main__":
+ # matching:
+ if "foo" & Match("oo"):
+ print("oo")
+ x = Match()
+ if "foo" & x("(o+)"):
+ print(x[1])
+ # replacing:
+ y = "fooboo" & Match("oo") >> "ee"
+ print(y)
+ r = Match("oo") >> "ee"
+ print("fooboo" & r)
+ s = MatchReplace("oo", "ee")
+ print("fooboo" & s)
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/options.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/options.py
new file mode 100644
index 00000000000..fb3b455f113
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/options.py
@@ -0,0 +1,31 @@
+#! /usr/bin/python
+# -*- coding: utf-8 -*-
+# @creator (C) 2003 Guido U. Draheim
+# @license http://creativecommons.org/licenses/by-nc-sa/2.0/de/
+
+from zzipdoc.match import Match
+
+# use as o.optionname to check for commandline options.
+class Options:
+ var = {}
+ def __getattr__(self, name):
+ if not name in self.var: return None
+ return self.var[name]
+ def __setattr__(self, name, value):
+ self.var[name] = value
+ def scan(self, optionstring): # option-name or None
+ x = Match()
+ if optionstring & x(r"^--?(\w+)=(.*)"):
+ self.var[x[1]] = x[2] ; return x[1]
+ if optionstring & x(r"^--?no-(\w+)$"):
+ self.var[x[1]] = "" ; return x[1]
+ if optionstring & x(r"^--?(\w+)$"):
+ self.var[x[1]] = "*"; return x[1]
+ return None
+#end Options
+
+if False:
+ o = Options()
+ o.help = """
+ scans for options
+ """
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/textfile.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/textfile.py
new file mode 100644
index 00000000000..1c8b935db58
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/textfile.py
@@ -0,0 +1,49 @@
+
+def _src_to_xml(text):
+ return text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt")
+
+class TextFile:
+ def __init__(self, filename = None):
+ self.filename = filename
+ self.src_text = None
+ self.xml_text = None
+ def parse(self, filename = None):
+ if filename is not None:
+ self.filename = filename
+ if self.filename is None:
+ return False
+ try:
+ fd = open(self.filename, "r")
+ self.src_text = fd.read()
+ fd.close()
+ return True
+ except IOError as e:
+ pass
+ return False
+ def assert_src_text(self):
+ if self.src_text: return True
+ return self.parse()
+ def assert_xml_text(self):
+ if self.xml_text: return True
+ if not self.assert_src_text(): return False
+ self.xml_text = _src_to_xml(self.src_text)
+ def get_src_text(self):
+ self.assert_src_text()
+ return self.src_text
+ def get_xml_text(self):
+ self.assert_xml_text()
+ return self.xml_text
+ def get_filename(self):
+ return self.filename
+ def line_xml_text(self, offset):
+ self._line(self.xml_text, offset)
+ def line_src_text(self, offset):
+ self._line(self.src_text, offset)
+ def _line(self, text, offset):
+ line = 1
+ for x in xrange(0,offset):
+ if x == "\n":
+ line += 1
+ return line
+
+
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/textfileheader.py b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/textfileheader.py
new file mode 100644
index 00000000000..c38c4be06ec
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zzipdoc/textfileheader.py
@@ -0,0 +1,49 @@
+from __future__ import print_function
+
+from zzipdoc.match import Match
+
+class TextFileHeader:
+ """ scan for a comment block at the source file start and fill the
+ inner text into self.comment - additionally scan for the first
+ #include statement and put the includename into self.mainheader
+ (TextFileHeader re-exports all => TextFile methods for processing)"""
+ def __init__(self, textfile = None):
+ self.textfile = textfile # TextFile
+ self.comment = "" # src'style
+ self.mainheader = "" # src'style
+ def parse(self, textfile = None):
+ if textfile is not None:
+ self.textfile = textfile
+ if self.textfile is None:
+ return False
+ x = Match()
+ text = self.textfile.get_src_text()
+ if not text:
+ print("nonexistent file: " + self.textfile.get_filename())
+ return False
+ if text & x(r"(?s)[/][*]+(\s(?:.(?!\*\/))*.)\*\/"
+ r"(?:\s*\#(?:define|ifdef|endif)[ ]*\S*[ ]*\S*)*"
+ r"(\s*\#include\s*<[^<>]*>(?:\s*//[^\n]*)?)"):
+ self.comment = x[1]
+ self.mainheader = x[2].strip()
+ elif text & x(r"(?s)[/][*]+(\s(?:.(?!\*\/))*.)\*\/"):
+ self.comment = x[1]
+ elif text & x(r"(?s)(?:\s*\#(?:define|ifdef|endif)[ ]*\S*[ ]*\S*)*"
+ r"(\s*\#include\s*<[^<>]*>(?:\s*//[^\n]*)?)"):
+ self.mainheader = x[1].strip()
+ return True
+ def src_mainheader(self):
+ return self.mainheader
+ def src_filecomment(self):
+ return self.comment
+ # re-export textfile functions - allows textfileheader to be used instead
+ def get_filename(self):
+ return self.textfile.get_filename()
+ def get_src_text(self):
+ return self.textfile.get_src_text()
+ def get_xml_text(self):
+ return self.textfile.get_src_text()
+ def line_src__text(self, offset):
+ return self.textfile.line_src_text(offset)
+ def line_xml__text(self, offset):
+ return self.textfile.line_xml_text(offset)
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zziplib-manpages.dbk b/Build/source/libs/zziplib/zziplib-src/docs/zziplib-manpages.dbk
new file mode 100644
index 00000000000..d3c8998bea7
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zziplib-manpages.dbk
@@ -0,0 +1,12 @@
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
+<!-- using <chapter> allows to append a <reference> with manpages -->
+<book><title> ZZIPlib Manual Pages </title>
+
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zziplib.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzipmmapped.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzipfseeko.xml" />
+</book>
diff --git a/Build/source/libs/zziplib/zziplib-src/docs/zziplib-master.dbk b/Build/source/libs/zziplib/zziplib-src/docs/zziplib-master.dbk
new file mode 100644
index 00000000000..8384c282428
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/docs/zziplib-master.dbk
@@ -0,0 +1,59 @@
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
+<!-- using <chapter> allows to append a <reference> with manpages -->
+<section>
+<sectioninfo>
+<date> 2006-01-01</date>
+<authorblurb><simpara> Guido Draheim </simpara></authorblurb>
+</sectioninfo>
+<title> ZZIPlib Documentation </title>
+
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-index.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-zip.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-file.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-sdl-rwops.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-extio.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-xor.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-crypt.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-cryptoid.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-api.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-basics.xml" />
+<!--
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-extras.xml" />
+-->
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="zzip-parse.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="64on32.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="future.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="fseeko.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="mmapped.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="memdisk.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="configs.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="sfx-make.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="history.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="referentials.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="copying.xml" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml"
+ href="faq.xml" />
+</section>
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ac_compile_check_sizeof.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ac_compile_check_sizeof.m4
new file mode 100644
index 00000000000..a1cdb402636
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ac_compile_check_sizeof.m4
@@ -0,0 +1,80 @@
+dnl /usr/share/aclocal/ac-archive-cvs/ac_compile_check_sizeof.m4
+dnl @synopsis AC_COMPILE_CHECK_SIZEOF(TYPE [, HEADERS [, EXTRA_SIZES...]])
+dnl
+dnl This macro checks for the size of TYPE using compile checks, not
+dnl run checks. You can supply extra HEADERS to look into. the check
+dnl will cycle through 1 2 4 8 16 and any EXTRA_SIZES the user
+dnl supplies. If a match is found, it will #define SIZEOF_`TYPE' to
+dnl that value. Otherwise it will emit a configure time error
+dnl indicating the size of the type could not be determined.
+dnl
+dnl The trick is that C will not allow duplicate case labels. While
+dnl this is valid C code:
+dnl
+dnl switch (0) case 0: case 1:;
+dnl
+dnl The following is not:
+dnl
+dnl switch (0) case 0: case 0:;
+dnl
+dnl Thus, the AC_TRY_COMPILE will fail if the currently tried size does
+dnl not match.
+dnl
+dnl Here is an example skeleton configure.in script, demonstrating the
+dnl macro's usage:
+dnl
+dnl AC_PROG_CC
+dnl AC_CHECK_HEADERS(stddef.h unistd.h)
+dnl AC_TYPE_SIZE_T
+dnl AC_CHECK_TYPE(ssize_t, int)
+dnl
+dnl headers='#ifdef HAVE_STDDEF_H
+dnl #include <stddef.h>
+dnl #endif
+dnl #ifdef HAVE_UNISTD_H
+dnl #include <unistd.h>
+dnl #endif
+dnl '
+dnl
+dnl AC_COMPILE_CHECK_SIZEOF(char)
+dnl AC_COMPILE_CHECK_SIZEOF(short)
+dnl AC_COMPILE_CHECK_SIZEOF(int)
+dnl AC_COMPILE_CHECK_SIZEOF(long)
+dnl AC_COMPILE_CHECK_SIZEOF(unsigned char *)
+dnl AC_COMPILE_CHECK_SIZEOF(void *)
+dnl AC_COMPILE_CHECK_SIZEOF(size_t, $headers)
+dnl AC_COMPILE_CHECK_SIZEOF(ssize_t, $headers)
+dnl AC_COMPILE_CHECK_SIZEOF(ptrdiff_t, $headers)
+dnl AC_COMPILE_CHECK_SIZEOF(off_t, $headers)
+dnl
+dnl @category Misc
+dnl @author Kaveh Ghazi <ghazi@caip.rutgers.edu>
+dnl @version 2000-07-19
+dnl @license GPLWithACException
+
+AC_DEFUN([AC_COMPILE_CHECK_SIZEOF],
+[changequote(<<, >>)dnl
+dnl The name to #define.
+define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
+dnl The cache variable name.
+define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
+changequote([, ])dnl
+AC_MSG_CHECKING(size of $1)
+AC_CACHE_VAL(AC_CV_NAME,
+[for ac_size in 4 8 1 2 16 $2 ; do # List sizes in rough order of prevalence.
+ AC_TRY_COMPILE([#include "confdefs.h"
+#include <sys/types.h>
+$2
+], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size)
+ if test x$AC_CV_NAME != x ; then break; fi
+done
+])
+if test x$AC_CV_NAME = x ; then
+ AC_MSG_ERROR([cannot determine a size for $1])
+fi
+AC_MSG_RESULT($AC_CV_NAME)
+AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1])
+undefine([AC_TYPE_NAME])dnl
+undefine([AC_CV_NAME])dnl
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ac_set_default_paths_system.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ac_set_default_paths_system.m4
new file mode 100644
index 00000000000..e2cc5aa9faa
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ac_set_default_paths_system.m4
@@ -0,0 +1,106 @@
+dnl /usr/share/aclocal/guidod-cvs/ac_set_default_paths_system.m4
+dnl @synopsis AC_SET_DEFAULT_PATHS_SYSTEM
+dnl
+dnl the most interesting changes go about windows-targets - where the
+dnl default_prefix is set to /programs, and quite some directories are
+dnl aliased: sbindir := libdir := bindir and the docprefix-defaults are
+dnl also a bit different, even on FHS2-compliant systems where the
+dnl mandir is going to $prefix/man only if prefix=/usr, otherwise they
+dnl shall go to $datadir/man. We use an extra docprefix to express it
+dnl which is either defined as being prefix or datadir. not SUBSTed
+dnl here.
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2001-08-25
+dnl @license GPLWithACException
+
+AC_DEFUN([AC_SET_DEFAULT_PATHS_SYSTEM],
+[AC_REQUIRE([AC_CANONICAL_HOST]) # --------------------------------------------
+case "$prefix:$ac_default_prefix" in
+ NONE:/usr/local)
+ result=""
+ AC_MSG_CHECKING(default prefix path)
+ case "${target_os}" in
+ *cygwin* | *mingw* | *uwin* | *djgpp | *emx* )
+ if test "${host_os}" = "${target_os}" ; then
+ ac_default_prefix="/programs"
+ result="(win/dos target)"
+ else
+ case "$PATH" in
+ *:/usr/local/cross-tools/$target_alias/bin:*)
+ ac_default_prefix="/usr/local/cross-tools/$target_alias" ;;
+ *:/usr/local/$target_alias/bin:*)
+ ac_default_prefix="/usr/local/$target_alias" ;;
+ *:/usr/local/$target_cpu-$target_os/bin:*)
+ ac_default_prefix="/usr/local/$target_cpu-$target_os" ;;
+ *)
+ ac_default_prefix="/programs" ;;
+ esac
+ result="(win/dos cross-compiler)"
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT($ac_default_prefix $result)
+ ;;
+esac
+AC_MSG_CHECKING(default prefix system)
+result="$prefix" ; test "$result" = "NONE" && result="$ac_default_prefix"
+case ${result} in
+ /programs | /programs/*) result="is win-/programs"
+ # on win/dos, .exe .dll and .cfg live in the same directory
+ libdir=`echo $libdir |sed -e 's:^..exec_prefix./lib$:${bindir}:'`
+ sbindir=`echo $sbindir |sed -e 's:^..exec_prefix./sbin$:${libdir}:'`
+ sysconfdir=`echo $sysconfdir |sed -e 's:^..prefix./etc$:${sbindir}:'`
+ libexecdir=`echo $libexecdir |sed -e 's:/libexec$:/system:'`
+ # help-files shall be set with --infodir, docprefix is datadir
+ docprefix="${datadir}"
+ mandir=`echo $mandir \
+ |sed -e 's:^..prefix./man$:${datadir}/info:'`
+ includedir=`echo $includedir \
+ |sed -e 's:^..prefix./include$:${datadir}/include:'`
+ # other state files (but /etc) are moved to datadir
+ sharedstatedir=`echo $sharedstatedir \
+ |sed -e 's:^..prefix./com$:${datadir}/default:'`
+ localstatedir=`echo $localstatedir \
+ |sed -e 's:^..prefix./var$:${datadir}/current:'`
+ ;;
+ /usr) result="is /usr-shipped"
+ # doc files are left at prefix
+ docprefix="${prefix}"
+ # state files go under /top
+ sysconfdir=`echo $sysconfdir |sed -e 's:^..prefix./etc$:/etc:'`
+ sharedstatedir=`echo $sharedstatedir \
+ |sed -e 's:^..prefix./com$:/etc/default:'`
+ # $prefix/var is going to end up in /var/lib
+ localstatedir=`echo $localstatedir \
+ |sed -e 's:^..prefix./var$:/var/lib:'`
+ ;;
+ /opt | /opt/*) result="is /opt-package"
+ # state files go under /top/prefix
+ sysconfdir=`echo $sysconfdir \
+ |sed -e 's:^..prefix./etc$:/etc${prefix}:'`
+ sharedstatedir=`echo $sharedstatedir \
+ |sed -e 's:^..prefix./com$:/etc/default${prefix}:'`
+ # $prefix/var is going to to be /var$prefix... once again
+ localstatedir=`echo $localstatedir \
+ |sed -e 's:^..prefix./var$:/var${prefix}:'`
+ # doc files are left at prefix
+ docprefix="${prefix}"
+ ;;
+ *) result="is /local-package"
+ # doc files are moved from prefix down to datadir
+ docprefix="${datadir}"
+ mandir=`echo $mandir \
+ |sed -e 's:^..prefix./man$:${datadir}/man:'`
+ infodir=`echo $infodir \
+ |sed -e 's:^..prefix./infodir$:${datadir}/info:'`
+ # never use $prefix/com - that is no good idea
+ sharedstatedir=`echo $sharedstatedir \
+ |sed -e 's:^..prefix./com$:${sysconfdir}/default:'`
+ ;;
+esac
+AC_MSG_RESULT($result)
+# --------------------------------------------------------
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ac_sys_largefile_sensitive.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ac_sys_largefile_sensitive.m4
new file mode 100644
index 00000000000..6a296df5278
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ac_sys_largefile_sensitive.m4
@@ -0,0 +1,46 @@
+dnl @synopsis AC_SYS_LARGEFILE_SENSITIVE
+dnl
+dnl checker whether the current system is sensitive to -Ddefines making
+dnl off_t having different types/sizes. Automatically define a config.h
+dnl symbol LARGEFILE_SENSITIVE if that is the case, otherwise leave
+dnl everything as is.
+dnl
+dnl This macro builds on top of AC_SYS_LARGEFILE to detect whether
+dnl special options are neede to make the code use 64bit off_t - in
+dnl many setups this will also make the code use 64bit off_t
+dnl immediately.
+dnl
+dnl The common use of a LARGEFILE_SENSITIVE config.h-define is to
+dnl rename exported functions, usually adding a 64 to the original
+dnl function name. Such renamings are only needed on systems being both
+dnl (a) 32bit off_t by default and (b) implementing large.file
+dnl extensions (as for unix98).
+dnl
+dnl a renaming section could look like this:
+dnl
+dnl #if defined LARGEFILE_SENSITIVE && _FILE_OFFSET_BITS+0 == 64
+dnl #define zzip_open zzip_open64
+dnl #define zzip_seek zzip_seek64
+dnl #endif
+dnl
+dnl for libraries, it is best to take advantage of the prefix-config.h
+dnl macro, otherwise you want to export a renamed LARGEFILE_SENSITIVE
+dnl in an installed header file. -> see AX_PREFIX_CONFIG_H
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2009-07-27
+dnl @license GPLWithACException
+
+AC_DEFUN([AC_SYS_LARGEFILE_SENSITIVE],[dnl
+AC_REQUIRE([AC_SYS_LARGEFILE])dnl
+# we know about some internals of ac_sys_largefile here...
+AC_MSG_CHECKING(whether system differentiates 64bit off_t by defines)
+ac_cv_sys_largefile_sensitive="no"
+if test ".${ac_cv_sys_file_offset_bits-no}${ac_cv_sys_large_files-no}" != ".nono"
+then ac_cv_sys_largefile_sensitive="yes"
+ AC_DEFINE(LARGEFILE_SENSITIVE, 1,
+ [whether the system defaults to 32bit off_t but can do 64bit when requested])
+fi
+AC_MSG_RESULT([$ac_cv_sys_largefile_sensitive])
+])
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/acx_restrict.m4 b/Build/source/libs/zziplib/zziplib-src/m4/acx_restrict.m4
new file mode 100644
index 00000000000..d5a9562ea0d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/acx_restrict.m4
@@ -0,0 +1,38 @@
+dnl /usr/share/aclocal/ac-archive-cvs/acx_restrict.m4
+dnl @synopsis ACX_C_RESTRICT
+dnl
+dnl @obsoleted Replaced by AC_C_RESTRICT in Autoconf 2.58
+dnl
+dnl This macro determines whether the C compiler supports the
+dnl "restrict" keyword introduced in ANSI C99, or an equivalent. Does
+dnl nothing if the compiler accepts the keyword. Otherwise, if the
+dnl compiler supports an equivalent (like gcc's __restrict__) defines
+dnl "restrict" to be that. Otherwise, defines "restrict" to be empty.
+dnl
+dnl @category Obsolete
+dnl @author Steven G. Johnson <stevenj@alum.mit.edu>
+dnl @version 2005-05-31
+dnl @license GPLWithACException
+
+AC_DEFUN([ACX_C_RESTRICT],
+[AC_CACHE_CHECK([for C restrict keyword], acx_cv_c_restrict,
+[acx_cv_c_restrict=unsupported
+ AC_LANG_SAVE
+ AC_LANG_C
+ # Try the official restrict keyword, then gcc's __restrict__, then
+ # SGI's __restrict. __restrict has slightly different semantics than
+ # restrict (it's a bit stronger, in that __restrict pointers can't
+ # overlap even with non __restrict pointers), but I think it should be
+ # okay under the circumstances where restrict is normally used.
+ for acx_kw in restrict __restrict__ __restrict; do
+ AC_TRY_COMPILE([], [float * $acx_kw x;], [acx_cv_c_restrict=$acx_kw; break])
+ done
+ AC_LANG_RESTORE
+])
+ if test "$acx_cv_c_restrict" != "restrict"; then
+ acx_kw="$acx_cv_c_restrict"
+ if test "$acx_kw" = unsupported; then acx_kw=""; fi
+ AC_DEFINE_UNQUOTED(restrict, $acx_kw, [Define to equivalent of C99 restrict keyword, or to nothing if this is not supported. Do not define if restrict is supported directly.])
+ fi
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_gcc_option.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_gcc_option.m4
new file mode 100644
index 00000000000..c8a6411f81d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_gcc_option.m4
@@ -0,0 +1,193 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_cflags_gcc_option.m4
+dnl @synopsis AX_CFLAGS_GCC_OPTION (optionflag [,[shellvar][,[A][,[NA]]])
+dnl
+dnl AX_CFLAGS_GCC_OPTION(-fvomit-frame) would show a message as like
+dnl "checking CFLAGS for gcc -fvomit-frame ... yes" and adds the
+dnl optionflag to CFLAGS if it is understood. You can override the
+dnl shellvar-default of CFLAGS of course. The order of arguments stems
+dnl from the explicit macros like AX_CFLAGS_WARN_ALL.
+dnl
+dnl The cousin AX_CXXFLAGS_GCC_OPTION would check for an option to add
+dnl to CXXFLAGS - and it uses the autoconf setup for C++ instead of C
+dnl (since it is possible to use different compilers for C and C++).
+dnl
+dnl The macro is a lot simpler than any special AX_CFLAGS_* macro (or
+dnl ac_cxx_rtti.m4 macro) but allows to check for arbitrary options.
+dnl However, if you use this macro in a few places, it would be great
+dnl if you would make up a new function-macro and submit it to the
+dnl ac-archive.
+dnl
+dnl - $1 option-to-check-for : required ("-option" as non-value)
+dnl - $2 shell-variable-to-add-to : CFLAGS (or CXXFLAGS in the other case)
+dnl - $3 action-if-found : add value to shellvariable
+dnl - $4 action-if-not-found : nothing
+dnl
+dnl note: in earlier versions, $1-$2 were swapped. We try to detect the
+dnl situation and accept a $2=~/-/ as being the old
+dnl option-to-check-for.
+dnl
+dnl also: there are other variants that emerged from the original macro
+dnl variant which did just test an option to be possibly added.
+dnl However, some compilers accept an option silently, or possibly for
+dnl just another option that was not intended. Therefore, we have to do
+dnl a generic test for a compiler family. For gcc we check "-pedantic"
+dnl being accepted which is also understood by compilers who just want
+dnl to be compatible with gcc even when not being made from gcc
+dnl sources.
+dnl
+dnl see also:
+dnl
+dnl AX_CFLAGS_SUN_OPTION AX_CFLAGS_HPUX_OPTION
+dnl AX_CFLAGS_AIX_OPTION AX_CFLAGS_IRIX_OPTION
+dnl
+dnl @category C
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2006-12-12
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_CFLAGS_GCC_OPTION_OLD], [dnl
+AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
+AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_gcc_option_$2])dnl
+AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for gcc m4_ifval($2,$2,-option)],
+VAR,[VAR="no, unknown"
+ AC_LANG_SAVE
+ AC_LANG_C
+ ac_save_[]FLAGS="$[]FLAGS"
+for ac_arg dnl
+in "-pedantic -Werror % m4_ifval($2,$2,-option)" dnl GCC
+ "-pedantic % m4_ifval($2,$2,-option) %% no, obsolete" dnl new GCC
+ #
+do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ AC_TRY_COMPILE([],[return 0;],
+ [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
+done
+ FLAGS="$ac_save_[]FLAGS"
+ AC_LANG_RESTORE
+])
+case ".$VAR" in
+ .ok|.ok,*) m4_ifvaln($3,$3) ;;
+ .|.no|.no,*) m4_ifvaln($4,$4) ;;
+ *) m4_ifvaln($3,$3,[
+ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
+ then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
+ else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
+ fi ]) ;;
+esac
+AS_VAR_POPDEF([VAR])dnl
+AS_VAR_POPDEF([FLAGS])dnl
+])
+
+
+dnl the only difference - the LANG selection... and the default FLAGS
+
+AC_DEFUN([AX_CXXFLAGS_GCC_OPTION_OLD], [dnl
+AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
+AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_gcc_option_$2])dnl
+AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for gcc m4_ifval($2,$2,-option)],
+VAR,[VAR="no, unknown"
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ ac_save_[]FLAGS="$[]FLAGS"
+for ac_arg dnl
+in "-pedantic -Werror % m4_ifval($2,$2,-option)" dnl GCC
+ "-pedantic % m4_ifval($2,$2,-option) %% no, obsolete" dnl new GCC
+ #
+do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ AC_TRY_COMPILE([],[return 0;],
+ [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
+done
+ FLAGS="$ac_save_[]FLAGS"
+ AC_LANG_RESTORE
+])
+case ".$VAR" in
+ .ok|.ok,*) m4_ifvaln($3,$3) ;;
+ .|.no|.no,*) m4_ifvaln($4,$4) ;;
+ *) m4_ifvaln($3,$3,[
+ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
+ then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
+ else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
+ fi ]) ;;
+esac
+AS_VAR_POPDEF([VAR])dnl
+AS_VAR_POPDEF([FLAGS])dnl
+])
+
+dnl -------------------------------------------------------------------------
+
+AC_DEFUN([AX_CFLAGS_GCC_OPTION_NEW], [dnl
+AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
+AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_gcc_option_$1])dnl
+AC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for gcc m4_ifval($1,$1,-option)],
+VAR,[VAR="no, unknown"
+ AC_LANG_SAVE
+ AC_LANG_C
+ ac_save_[]FLAGS="$[]FLAGS"
+for ac_arg dnl
+in "-pedantic -Werror % m4_ifval($1,$1,-option)" dnl GCC
+ "-pedantic % m4_ifval($1,$1,-option) %% no, obsolete" dnl new GCC
+ #
+do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ AC_TRY_COMPILE([],[return 0;],
+ [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
+done
+ FLAGS="$ac_save_[]FLAGS"
+ AC_LANG_RESTORE
+])
+case ".$VAR" in
+ .ok|.ok,*) m4_ifvaln($3,$3) ;;
+ .|.no|.no,*) m4_ifvaln($4,$4) ;;
+ *) m4_ifvaln($3,$3,[
+ if echo " $[]m4_ifval($2,$2,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
+ then AC_RUN_LOG([: m4_ifval($2,$2,FLAGS) does contain $VAR])
+ else AC_RUN_LOG([: m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR"])
+ m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR"
+ fi ]) ;;
+esac
+AS_VAR_POPDEF([VAR])dnl
+AS_VAR_POPDEF([FLAGS])dnl
+])
+
+
+dnl the only difference - the LANG selection... and the default FLAGS
+
+AC_DEFUN([AX_CXXFLAGS_GCC_OPTION_NEW], [dnl
+AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
+AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_gcc_option_$1])dnl
+AC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for gcc m4_ifval($1,$1,-option)],
+VAR,[VAR="no, unknown"
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ ac_save_[]FLAGS="$[]FLAGS"
+for ac_arg dnl
+in "-pedantic -Werror % m4_ifval($1,$1,-option)" dnl GCC
+ "-pedantic % m4_ifval($1,$1,-option) %% no, obsolete" dnl new GCC
+ #
+do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ AC_TRY_COMPILE([],[return 0;],
+ [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
+done
+ FLAGS="$ac_save_[]FLAGS"
+ AC_LANG_RESTORE
+])
+case ".$VAR" in
+ .ok|.ok,*) m4_ifvaln($3,$3) ;;
+ .|.no|.no,*) m4_ifvaln($4,$4) ;;
+ *) m4_ifvaln($3,$3,[
+ if echo " $[]m4_ifval($2,$2,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
+ then AC_RUN_LOG([: m4_ifval($2,$2,FLAGS) does contain $VAR])
+ else AC_RUN_LOG([: m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR"])
+ m4_ifval($2,$2,FLAGS)="$m4_ifval($2,$2,FLAGS) $VAR"
+ fi ]) ;;
+esac
+AS_VAR_POPDEF([VAR])dnl
+AS_VAR_POPDEF([FLAGS])dnl
+])
+
+AC_DEFUN([AX_CFLAGS_GCC_OPTION],[ifelse(m4_bregexp([$2],[-]),-1,
+[AX_CFLAGS_GCC_OPTION_NEW($@)],[AX_CFLAGS_GCC_OPTION_OLD($@)])])
+
+AC_DEFUN([AX_CXXFLAGS_GCC_OPTION],[ifelse(m4_bregexp([$2],[-]),-1,
+[AX_CXXFLAGS_GCC_OPTION_NEW($@)],[AX_CXXFLAGS_GCC_OPTION_OLD($@)])])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_no_writable_strings.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_no_writable_strings.m4
new file mode 100644
index 00000000000..db9997ea6fd
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_no_writable_strings.m4
@@ -0,0 +1,145 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_cflags_no_writable_strings.m4
+dnl @synopsis AX_CFLAGS_NO_WRITABLE_STRINGS [(shellvar [,default, [A/NA]])]
+dnl
+dnl Try to find a compiler option that makes all stringliteral
+dnl readonly.
+dnl
+dnl The sanity check is done by looking at string.h which has a set of
+dnl strcpy definitions that should be defined with const-modifiers to
+dnl not emit a warning in all so many places.
+dnl
+dnl For the GNU CC compiler it will be -fno-writable-strings
+dnl -Wwrite-strings The result is added to the shellvar being CFLAGS by
+dnl default.
+dnl
+dnl DEFAULTS:
+dnl
+dnl - $1 shell-variable-to-add-to : CFLAGS
+dnl - $2 add-value-if-not-found : nothing
+dnl - $3 action-if-found : add value to shellvariable
+dnl - $4 action-if-not-found : nothing
+dnl
+dnl @category C
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2006-12-12
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_CFLAGS_NO_WRITABLE_STRINGS],[dnl
+AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
+AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_no_writable_strings])dnl
+AC_CACHE_CHECK([m4_ifval([$1],[$1],FLAGS) making strings readonly],
+VAR,[VAR="no, unknown"
+ AC_LANG_SAVE
+ AC_LANG_C
+ ac_save_[]FLAGS="$[]FLAGS"
+# IRIX C compiler:
+# -use_readonly_const is the default for IRIX C,
+# puts them into .rodata, but they are copied later.
+# need to be "-G0 -rdatashared" for strictmode but
+# I am not sure what effect that has really. - guidod
+for ac_arg dnl
+in "-pedantic % -fno-writable-strings -Wwrite-strings" dnl GCC
+ "-pedantic % -fconst-strings -Wwrite-strings" dnl newer GCC
+ "-v -Xc % -xstrconst" dnl Solaris C - strings go into readonly segment
+ "+w1 -Aa % +ESlit" dnl HP-UX C - strings go into readonly segment
+ "-w0 -std1 % -readonly_strings" dnl Digital Unix - again readonly segment
+ "-fullwarn -use_readonly_const %% ok, its the default" dnl IRIX C
+ #
+do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ AC_TRY_COMPILE([],[return 0;],
+ [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
+done
+case ".$VAR" in
+ .|.no|.no,*) ;;
+ *) # sanity check - testing strcpy() from string.h
+ cp config.log config.tmp
+ AC_TRY_COMPILE([#include <string.h>],[
+ char test[16];
+ if (strcpy (test, "test")) return 1;],
+ dnl the original did use test -n `$CC testprogram.c`
+ [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0
+ then VAR="no, suppressed, string.h," ; fi],
+ [VAR="no, suppressed, string.h"])
+ rm config.tmp
+ ;;
+esac
+ FLAGS="$ac_save_[]FLAGS"
+ AC_LANG_RESTORE
+])
+case ".$VAR" in
+ .ok|.ok,*) m4_ifvaln($3,$3) ;;
+ .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
+ AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
+ *) m4_ifvaln($3,$3,[
+ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
+ then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
+ else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
+ fi ]) ;;
+esac
+AS_VAR_POPDEF([VAR])dnl
+AS_VAR_POPDEF([FLAGS])dnl
+])
+
+dnl the only difference - the LANG selection... and the default FLAGS
+
+AC_DEFUN([AX_CXXFLAGS_NO_WRITABLE_STRINGS],[dnl
+AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
+AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_no_writable_strings])dnl
+AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) making strings readonly],
+VAR,[VAR="no, unknown"
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ ac_save_[]FLAGS="$[]FLAGS"
+# IRIX C compiler:
+# -use_readonly_const is the default for IRIX C,
+# puts them into .rodata, but they are copied later.
+# need to be "-G0 -rdatashared" for strictmode but
+# I am not sure what effect that has really. - guidod
+for ac_arg dnl
+in "-pedantic -Werror % -fno-writable-strings -Wwrite-strings" dnl GCC
+ "-pedantic -Werror % -fconst-strings -Wwrite-strings" dnl newer GCC
+ "-pedantic % -fconst-strings %% no, const-strings is default" dnl newer GCC
+ "-v -Xc % -xstrconst" dnl Solaris C - strings go into readonly segment
+ "+w1 -Aa % +ESlit" dnl HP-UX C - strings go into readonly segment
+ "-w0 -std1 % -readonly_strings" dnl Digital Unix - again readonly segment
+ "-fullwarn -use_readonly_const %% ok, its the default" dnl IRIX C
+ #
+do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ AC_TRY_COMPILE([],[return 0;],
+ [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
+done
+case ".$VAR" in
+ .|.no|.no,*) ;;
+ *) # sanity check - testing strcpy() from string.h
+ cp config.log config.tmp
+ AC_TRY_COMPILE([#include <string.h>],[
+ char test[16];
+ if (strcpy (test, "test")) return 1;],
+ dnl the original did use test -n `$CC testprogram.c`
+ [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0
+ then VAR="no, suppressed, string.h," ; fi],
+ [VAR="no, suppressed, string.h"])
+ rm config.tmp
+ ;;
+esac
+ FLAGS="$ac_save_[]FLAGS"
+ AC_LANG_RESTORE
+])
+case ".$VAR" in
+ .ok|.ok,*) m4_ifvaln($3,$3) ;;
+ .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
+ AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
+ *) m4_ifvaln($3,$3,[
+ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
+ then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
+ else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
+ fi ]) ;;
+esac
+AS_VAR_POPDEF([VAR])dnl
+AS_VAR_POPDEF([FLAGS])dnl
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_strict_prototypes.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_strict_prototypes.m4
new file mode 100644
index 00000000000..bd19c17962b
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_strict_prototypes.m4
@@ -0,0 +1,136 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_cflags_strict_prototypes.m4
+dnl @synopsis AX_CFLAGS_STRICT_PROTOTYPES [(shellvar [,default, [A/NA]]
+dnl
+dnl Try to find a compiler option that requires strict prototypes.
+dnl
+dnl The sanity check is done by looking at sys/signal.h which has a set
+dnl of macro-definitions SIG_DFL and SIG_IGN that are cast to the local
+dnl signal-handler type. If that signal-handler type is not fully
+dnl qualified then the system headers are not seen as strictly
+dnl prototype clean.
+dnl
+dnl For the GNU CC compiler it will be -fstrict-prototypes
+dnl -Wstrict-prototypes The result is added to the shellvar being
+dnl CFLAGS by default.
+dnl
+dnl DEFAULTS:
+dnl
+dnl - $1 shell-variable-to-add-to : CFLAGS
+dnl - $2 add-value-if-not-found : nothing
+dnl - $3 action-if-found : add value to shellvariable
+dnl - $4 action-if-not-found : nothing
+dnl
+dnl @category C
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2006-12-12
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_CFLAGS_STRICT_PROTOTYPES],[dnl
+AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
+AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_strict_prototypes])dnl
+AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for strict prototypes],
+VAR,[VAR="no, unknown"
+ AC_LANG_SAVE
+ AC_LANG_C
+ ac_save_[]FLAGS="$[]FLAGS"
+for ac_arg dnl
+in "-pedantic % -fstrict-prototypes -Wstrict-prototypes" dnl GCC
+ "-pedantic % -Wstrict-prototypes" dnl try to warn atleast
+ "-pedantic % -Wmissing-prototypes" dnl or another warning
+ "-pedantic % -Werror-implicit-function-declaration" dnl
+ "-pedantic % -Wimplicit-function-declaration" dnl
+ #
+do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ AC_TRY_COMPILE([],[return 0;],
+ [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
+done
+case ".$VAR" in
+ .|.no|.no,*) ;;
+ *) # sanity check with signal() from sys/signal.h
+ cp config.log config.tmp
+ AC_TRY_COMPILE([#include <signal.h>],[
+ if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 1;
+ if (signal (SIGINT, SIG_IGN) != SIG_DFL) return 2;],
+ dnl the original did use test -n `$CC testprogram.c`
+ [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0
+then if test `diff config.log config.tmp | grep -i warning | wc -l` != 1
+then VAR="no, suppressed, signal.h," ; fi ; fi],
+ [VAR="no, suppressed, signal.h"])
+ rm config.tmp
+ ;;
+esac
+ FLAGS="$ac_save_[]FLAGS"
+ AC_LANG_RESTORE
+])
+case ".$VAR" in
+ .ok|.ok,*) m4_ifvaln($3,$3) ;;
+ .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
+ AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
+ *) m4_ifvaln($3,$3,[
+ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
+ then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
+ else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
+ fi ]) ;;
+esac
+AS_VAR_POPDEF([VAR])dnl
+AS_VAR_POPDEF([FLAGS])dnl
+])
+
+dnl the only difference - the LANG selection... and the default FLAGS
+
+AC_DEFUN([AX_CXXFLAGS_STRICT_PROTOTYPES],[dnl
+AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
+AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_strict_prototypes])dnl
+AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for strict prototypes],
+VAR,[VAR="no, unknown"
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ ac_save_[]FLAGS="$[]FLAGS"
+for ac_arg dnl
+in "-pedantic -Werror % -fstrict-prototypes -Wstrict-prototypes" dnl GCC
+ "-pedantic -Werror % -Wstrict-prototypes" dnl try to warn atleast
+ "-pedantic -Werror % -Wmissing-prototypes" dnl try to warn atleast
+ "-pedantic -Werror % -Werror-implicit-function-declaration" dnl
+ "-pedantic -Werror % -Wimplicit-function-declaration" dnl
+ "-pedantic % -Wstrict-prototypes %% no, unsupported in C++" dnl oops
+ #
+do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ AC_TRY_COMPILE([],[return 0;],
+ [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
+done
+case ".$VAR" in
+ .|.no|.no,*) ;;
+ *) # sanity check with signal() from sys/signal.h
+ cp config.log config.tmp
+ AC_TRY_COMPILE([#include <signal.h>],[
+ if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 1;
+ if (signal (SIGINT, SIG_IGN) != SIG_DFL) return 2;],
+ dnl the original did use test -n `$CC testprogram.c`
+ [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0
+then if test `diff config.log config.tmp | grep -i warning | wc -l` != 1
+then VAR="no, suppressed, signal.h," ; fi ; fi],
+ [VAR="no, suppressed, signal.h"])
+ rm config.tmp
+ ;;
+esac
+ FLAGS="$ac_save_[]FLAGS"
+ AC_LANG_RESTORE
+])
+case ".$VAR" in
+ .ok|.ok,*) m4_ifvaln($3,$3) ;;
+ .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
+ AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
+ *) m4_ifvaln($3,$3,[
+ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
+ then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
+ else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
+ fi ]) ;;
+esac
+AS_VAR_POPDEF([VAR])dnl
+AS_VAR_POPDEF([FLAGS])dnl
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_warn_all.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_warn_all.m4
new file mode 100644
index 00000000000..15b3f394814
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_cflags_warn_all.m4
@@ -0,0 +1,121 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_cflags_warn_all.m4
+dnl @synopsis AX_CFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])]
+dnl
+dnl Try to find a compiler option that enables most reasonable
+dnl warnings. This macro is directly derived from VL_PROG_CC_WARNINGS
+dnl which is split up into two AX_CFLAGS_WARN_ALL and
+dnl AX_CFLAGS_WARN_ALL_ANSI
+dnl
+dnl For the GNU CC compiler it will be -Wall (and -ansi -pedantic) The
+dnl result is added to the shellvar being CFLAGS by default.
+dnl
+dnl Currently this macro knows about GCC, Solaris C compiler, Digital
+dnl Unix C compiler, C for AIX Compiler, HP-UX C compiler, IRIX C
+dnl compiler, NEC SX-5 (Super-UX 10) C compiler, and Cray J90 (Unicos
+dnl 10.0.0.8) C compiler.
+dnl
+dnl - $1 shell-variable-to-add-to : CFLAGS
+dnl - $2 add-value-if-not-found : nothing
+dnl - $3 action-if-found : add value to shellvariable
+dnl - $4 action-if-not-found : nothing
+dnl
+dnl @category C
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2006-12-12
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl
+AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
+AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_warn_all])dnl
+AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings],
+VAR,[VAR="no, unknown"
+ AC_LANG_SAVE
+ AC_LANG_C
+ ac_save_[]FLAGS="$[]FLAGS"
+for ac_arg dnl
+in "-pedantic % -Wall" dnl GCC
+ "-xstrconst % -v" dnl Solaris C
+ "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix
+ "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX
+ "-ansi -ansiE % -fullwarn" dnl IRIX
+ "+ESlit % +w1" dnl HP-UX C
+ "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10)
+ "-h conform % -h msglevel 2" dnl Cray C (Unicos)
+ #
+do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ AC_TRY_COMPILE([],[return 0;],
+ [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
+done
+ FLAGS="$ac_save_[]FLAGS"
+ AC_LANG_RESTORE
+])
+case ".$VAR" in
+ .ok|.ok,*) m4_ifvaln($3,$3) ;;
+ .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
+ AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
+ *) m4_ifvaln($3,$3,[
+ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
+ then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
+ else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
+ fi ]) ;;
+esac
+AS_VAR_POPDEF([VAR])dnl
+AS_VAR_POPDEF([FLAGS])dnl
+])
+
+dnl the only difference - the LANG selection... and the default FLAGS
+
+AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl
+AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
+AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_warn_all])dnl
+AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings],
+VAR,[VAR="no, unknown"
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ ac_save_[]FLAGS="$[]FLAGS"
+for ac_arg dnl
+in "-pedantic % -Wall" dnl GCC
+ "-xstrconst % -v" dnl Solaris C
+ "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix
+ "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX
+ "-ansi -ansiE % -fullwarn" dnl IRIX
+ "+ESlit % +w1" dnl HP-UX C
+ "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10)
+ "-h conform % -h msglevel 2" dnl Cray C (Unicos)
+ #
+do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
+ AC_TRY_COMPILE([],[return 0;],
+ [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
+done
+ FLAGS="$ac_save_[]FLAGS"
+ AC_LANG_RESTORE
+])
+case ".$VAR" in
+ .ok|.ok,*) m4_ifvaln($3,$3) ;;
+ .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
+ AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
+ *) m4_ifvaln($3,$3,[
+ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
+ then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
+ else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
+ m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
+ fi ]) ;;
+esac
+AS_VAR_POPDEF([VAR])dnl
+AS_VAR_POPDEF([FLAGS])dnl
+])
+
+dnl implementation tactics:
+dnl the for-argument contains a list of options. The first part of
+dnl these does only exist to detect the compiler - usually it is
+dnl a global option to enable -ansi or -extrawarnings. All other
+dnl compilers will fail about it. That was needed since a lot of
+dnl compilers will give false positives for some option-syntax
+dnl like -Woption or -Xoption as they think of it is a pass-through
+dnl to later compile stages or something. The "%" is used as a
+dnl delimimiter. A non-option comment can be given after "%%" marks
+dnl which will be shown but not added to the respective C/CXXFLAGS.
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_check_aligned_access_required.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_check_aligned_access_required.m4
new file mode 100644
index 00000000000..3f0872679bc
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_check_aligned_access_required.m4
@@ -0,0 +1,64 @@
+dnl @synopsis AX_CHECK_ALIGNED_ACCESS_REQUIRED
+dnl
+dnl Copyright (C) 2006, 2009 Guido U. Draheim <guidod@gmx.de>
+dnl Copyright (C) 2010 Peter Breitenlohner <tex-live@tug.org>
+dnl
+dnl This file is free software; the copyright holders
+dnl give unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl While the x86 CPUs allow access to memory objects to be unaligned
+dnl it happens that most of the modern designs require objects to be
+dnl aligned - or they will fail with a buserror. That mode is quite known
+dnl by big-endian machines (sparc, etc) however the alpha cpu is little-
+dnl endian.
+dnl
+dnl The following function will test for aligned access to be required and
+dnl set a config.h define HAVE_ALIGNED_ACCESS_REQUIRED (name derived by
+dnl standard usage). Structures loaded from a file (or mmapped to memory)
+dnl should be accessed per-byte in that case to avoid segfault type errors.
+dnl
+dnl @category C
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @author Peter Breitenlohner <tex-live@tug.org>
+dnl @version 2010-02-01
+dnl @license GPLWithACException
+dnl @license BSD
+
+AC_DEFUN([AX_CHECK_ALIGNED_ACCESS_REQUIRED],
+[AC_CACHE_CHECK([if pointers to integers require aligned access],
+ [ax_cv_have_aligned_access_required],
+[if test "$cross_compiling" = "yes"; then
+ case "$host_cpu" in alpha*|arm*|bfin*|hp*|mips*|sh*|sparc*|ia64|nv1)
+ ax_cv_have_aligned_access_required="yes"
+ ;; esac
+else
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+
+int main()
+{
+ char* string = malloc(40);
+ int i;
+ for (i=0; i < 40; i++) string[[i]] = i;
+ {
+ void* s = string;
+ int* p = s+1;
+ int* q = s+2;
+
+ if (*p == *q) { return 1; }
+ }
+ return 0;
+}
+ ],
+ [ax_cv_have_aligned_access_required=yes],
+ [ax_cv_have_aligned_access_required=no],
+ [ax_cv_have_aligned_access_required=no])
+ ])
+fi
+if test "$ax_cv_have_aligned_access_required" = yes ; then
+ AC_DEFINE([HAVE_ALIGNED_ACCESS_REQUIRED], [1],
+ [Define if pointers to integers require aligned access])
+fi
+])
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_check_enable_debug.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_check_enable_debug.m4
new file mode 100644
index 00000000000..d36bcdff24a
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_check_enable_debug.m4
@@ -0,0 +1,124 @@
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_check_enable_debug.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_CHECK_ENABLE_DEBUG([enable by default=yes/info/profile/no], [ENABLE DEBUG VARIABLES ...], [DISABLE DEBUG VARIABLES NDEBUG ...], [IS-RELEASE])
+#
+# DESCRIPTION
+#
+# Check for the presence of an --enable-debug option to configure, with
+# the specified default value used when the option is not present. Return
+# the value in the variable $ax_enable_debug.
+#
+# Specifying 'yes' adds '-g -O0' to the compilation flags for all
+# languages. Specifying 'info' adds '-g' to the compilation flags.
+# Specifying 'profile' adds '-g -pg' to the compilation flags and '-pg' to
+# the linking flags. Otherwise, nothing is added.
+#
+# Define the variables listed in the second argument if debug is enabled,
+# defaulting to no variables. Defines the variables listed in the third
+# argument if debug is disabled, defaulting to NDEBUG. All lists of
+# variables should be space-separated.
+#
+# If debug is not enabled, ensure AC_PROG_* will not add debugging flags.
+# Should be invoked prior to any AC_PROG_* compiler checks.
+#
+# IS-RELEASE can be used to change the default to 'no' when making a
+# release. Set IS-RELEASE to 'yes' or 'no' as appropriate. By default, it
+# uses the value of $ax_is_release, so if you are using the AX_IS_RELEASE
+# macro, there is no need to pass this parameter.
+#
+# AX_IS_RELEASE([git-directory])
+# AX_CHECK_ENABLE_DEBUG()
+#
+# LICENSE
+#
+# Copyright (c) 2011 Rhys Ulerich <rhys.ulerich@gmail.com>
+# Copyright (c) 2014, 2015 Philip Withnall <philip@tecnocode.co.uk>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved.
+
+#serial 8
+
+AC_DEFUN([AX_CHECK_ENABLE_DEBUG],[
+ AC_BEFORE([$0],[AC_PROG_CC])dnl
+ AC_BEFORE([$0],[AC_PROG_CXX])dnl
+ AC_BEFORE([$0],[AC_PROG_F77])dnl
+ AC_BEFORE([$0],[AC_PROG_FC])dnl
+
+ AC_MSG_CHECKING(whether to enable debugging)
+
+ ax_enable_debug_default=m4_tolower(m4_normalize(ifelse([$1],,[no],[$1])))
+ ax_enable_debug_is_release=m4_tolower(m4_normalize(ifelse([$4],,
+ [$ax_is_release],
+ [$4])))
+
+ # If this is a release, override the default.
+ AS_IF([test "$ax_enable_debug_is_release" = "yes"],
+ [ax_enable_debug_default="no"])
+
+ m4_define(ax_enable_debug_vars,[m4_normalize(ifelse([$2],,,[$2]))])
+ m4_define(ax_disable_debug_vars,[m4_normalize(ifelse([$3],,[NDEBUG],[$3]))])
+
+ AC_ARG_ENABLE(debug,
+ [AS_HELP_STRING([--enable-debug=]@<:@yes/info/profile/no@:>@,[compile with debugging])],
+ [],enable_debug=$ax_enable_debug_default)
+
+ # empty mean debug yes
+ AS_IF([test "x$enable_debug" = "x"],
+ [enable_debug="yes"])
+
+ # case of debug
+ AS_CASE([$enable_debug],
+ [yes],[
+ AC_MSG_RESULT(yes)
+ CFLAGS="${CFLAGS} -g -O0"
+ CXXFLAGS="${CXXFLAGS} -g -O0"
+ FFLAGS="${FFLAGS} -g -O0"
+ FCFLAGS="${FCFLAGS} -g -O0"
+ OBJCFLAGS="${OBJCFLAGS} -g -O0"
+ ],
+ [info],[
+ AC_MSG_RESULT(info)
+ CFLAGS="${CFLAGS} -g"
+ CXXFLAGS="${CXXFLAGS} -g"
+ FFLAGS="${FFLAGS} -g"
+ FCFLAGS="${FCFLAGS} -g"
+ OBJCFLAGS="${OBJCFLAGS} -g"
+ ],
+ [profile],[
+ AC_MSG_RESULT(profile)
+ CFLAGS="${CFLAGS} -g -pg"
+ CXXFLAGS="${CXXFLAGS} -g -pg"
+ FFLAGS="${FFLAGS} -g -pg"
+ FCFLAGS="${FCFLAGS} -g -pg"
+ OBJCFLAGS="${OBJCFLAGS} -g -pg"
+ LDFLAGS="${LDFLAGS} -pg"
+ ],
+ [
+ AC_MSG_RESULT(no)
+ dnl Ensure AC_PROG_CC/CXX/F77/FC/OBJC will not enable debug flags
+ dnl by setting any unset environment flag variables
+ AS_IF([test "x${CFLAGS+set}" != "xset"],
+ [CFLAGS=""])
+ AS_IF([test "x${CXXFLAGS+set}" != "xset"],
+ [CXXFLAGS=""])
+ AS_IF([test "x${FFLAGS+set}" != "xset"],
+ [FFLAGS=""])
+ AS_IF([test "x${FCFLAGS+set}" != "xset"],
+ [FCFLAGS=""])
+ AS_IF([test "x${OBJCFLAGS+set}" != "xset"],
+ [OBJCFLAGS=""])
+ ])
+
+ dnl Define various variables if debugging is disabled.
+ dnl assert.h is a NOP if NDEBUG is defined, so define it by default.
+ AS_IF([test "x$enable_debug" = "xyes"],
+ [m4_map_args_w(ax_enable_debug_vars, [AC_DEFINE(], [,,[Define if debugging is enabled])])],
+ [m4_map_args_w(ax_disable_debug_vars, [AC_DEFINE(], [,,[Define if debugging is disabled])])])
+ ax_enable_debug=$enable_debug
+])
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_configure_args.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_configure_args.m4
new file mode 100644
index 00000000000..597b6b079f4
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_configure_args.m4
@@ -0,0 +1,36 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_configure_args.m4
+dnl @synopsis AX_CONFIGURE_ARGS
+dnl
+dnl Helper macro for AX_ENABLE_BUILDDIR and AX_ENABLE_BUILDDIR_UNAME
+dnl
+dnl The traditional way of starting a subdir-configure is running the
+dnl script with ${1+"$@"} but since autoconf 2.60 this is broken.
+dnl Instead we have to rely on eval'ing $ac_configure_args however
+dnl some old autoconf versions do not provide that. To ensure maximum
+dnl portability of autoconf extension macros this helper can be
+dnl AC_REQUIRE'd so that $ac_configure_args will alsways be present.
+dnl
+dnl Sadly, the traditional "exec $SHELL" of the enable_builddir macros
+dnl is spoiled now and must be replaced by eval + exit $?
+dnl
+dnl example:
+dnl AC_DEFUN([AX_ENABLE_SUBDIR],[dnl
+dnl AC_REQUIRE([AX_CONFIGURE_ARGS])dnl
+dnl eval $SHELL $ac_configure_args || exit $?
+dnl ...])
+dnl
+dnl @category Misc
+dnl @author Guido Draheim
+dnl @version 2007-02-01
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_CONFIGURE_ARGS],[
+ # [$]@ is unsable in 2.60+ but earlier autoconf had no ac_configure_args
+ if test "${ac_configure_args+set}" != "set" ; then
+ ac_configure_args=
+ for ac_arg in ${1+"[$]@"}; do
+ ac_configure_args="$ac_configure_args '$ac_arg'"
+ done
+ fi
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_create_pkgconfig_info.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_create_pkgconfig_info.m4
new file mode 100644
index 00000000000..9af0bbf5d5c
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_create_pkgconfig_info.m4
@@ -0,0 +1,319 @@
+dnl ______ /usr/share/aclocal/guidod-cvs/ax_create_pkgconfig_info.m4 ______
+dnl @synopsis AX_CREATE_PKGCONFIG_INFO [(outputfile, [requires [,libs [,summary [,cflags [, ldflags]]]]])]
+dnl
+dnl defaults:
+dnl
+dnl $1 = $PACKAGE_NAME.pc
+dnl $2 = (empty)
+dnl $3 = $PACKAGE_LIBS $LIBS (as set at that point in configure.ac)
+dnl $4 = $PACKAGE_SUMMARY (or $1 Library)
+dnl $5 = $CPPFLAGS $PACKAGE_CFLAGS (as set at the point in configure.ac)
+dnl $6 = $LDFLAGS $PACKAGE_LDFLAGS (as set at the point in configure.ac)
+dnl
+dnl PACKAGE_NAME defaults to $PACKAGE if not set.
+dnl PACKAGE_LIBS defaults to -l$PACKAGE_NAME if not set.
+dnl
+dnl the resulting file is called $PACKAGE.pc.in / $PACKAGE.pc
+dnl
+dnl You will find this macro most useful in conjunction with
+dnl ax_spec_defaults that can read good initializers from the .spec
+dnl file. In consequencd, most of the generatable installable stuff can
+dnl be made from information being updated in a single place for the
+dnl whole project.
+dnl
+dnl @category InstalledPackages
+dnl @author Sven Verdoolaege <skimo*liacs.nl>
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2003-10-19
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_CREATE_PKGCONFIG_INFO],[dnl
+AS_VAR_PUSHDEF([PKGCONFIG_suffix],[ax_create_pkgconfig_suffix])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_libdir],[ax_create_pkgconfig_libdir])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_libfile],[ax_create_pkgconfig_libfile])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_libname],[ax_create_pkgconfig_libname])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_version],[ax_create_pkgconfig_version])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_description],[ax_create_pkgconfig_description])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_requires],[ax_create_pkgconfig_requires])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_pkglibs],[ax_create_pkgconfig_pkglibs])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_libs],[ax_create_pkgconfig_libs])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_ldflags],[ax_create_pkgconfig_ldflags])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_cppflags],[ax_create_pkgconfig_cppflags])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_generate],[ax_create_pkgconfig_generate])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_src_libdir],[ax_create_pkgconfig_src_libdir])dnl
+AS_VAR_PUSHDEF([PKGCONFIG_src_headers],[ax_create_pkgconfig_src_headers])dnl
+
+# we need the expanded forms...
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+AC_MSG_CHECKING(our pkgconfig libname)
+test ".$PKGCONFIG_libname" != "." || \
+PKGCONFIG_libname="ifelse($1,,${PACKAGE_NAME},`basename $1 .pc`)"
+test ".$PKGCONFIG_libname" != "." || \
+PKGCONFIG_libname="$PACKAGE"
+PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"`
+PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"`
+AC_MSG_RESULT($PKGCONFIG_libname)
+
+AC_MSG_CHECKING(our pkgconfig version)
+test ".$PKGCONFIG_version" != "." || \
+PKGCONFIG_version="${PACKAGE_VERSION}"
+test ".$PKGCONFIG_version" != "." || \
+PKGCONFIG_version="$VERSION"
+PKGCONFIG_version=`eval echo "$PKGCONFIG_version"`
+PKGCONFIG_version=`eval echo "$PKGCONFIG_version"`
+AC_MSG_RESULT($PKGCONFIG_version)
+
+AC_MSG_CHECKING(our pkgconfig_libdir)
+test ".$pkgconfig_libdir" = "." && \
+pkgconfig_libdir='${libdir}/pkgconfig'
+PKGCONFIG_libdir=`eval echo "$pkgconfig_libdir"`
+PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"`
+PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"`
+AC_MSG_RESULT($pkgconfig_libdir)
+test "$pkgconfig_libdir" != "$PKGCONFIG_libdir" && (
+AC_MSG_RESULT(expanded our pkgconfig_libdir... $PKGCONFIG_libdir))
+AC_SUBST([pkgconfig_libdir])
+
+AC_MSG_CHECKING(our pkgconfig_libfile)
+test ".$pkgconfig_libfile" != "." || \
+pkgconfig_libfile="ifelse($1,,$PKGCONFIG_libname.pc,`basename $1`)"
+PKGCONFIG_libfile=`eval echo "$pkgconfig_libfile"`
+PKGCONFIG_libfile=`eval echo "$PKGCONFIG_libfile"`
+AC_MSG_RESULT($pkgconfig_libfile)
+test "$pkgconfig_libfile" != "$PKGCONFIG_libfile" && (
+AC_MSG_RESULT(expanded our pkgconfig_libfile... $PKGCONFIG_libfile))
+AC_SUBST([pkgconfig_libfile])
+
+AC_MSG_CHECKING(our package / suffix)
+PKGCONFIG_suffix="$program_suffix"
+test ".$PKGCONFIG_suffix" != .NONE || PKGCONFIG_suffix=""
+AC_MSG_RESULT(${PACKAGE_NAME} / ${PKGCONFIG_suffix})
+
+AC_MSG_CHECKING(our pkgconfig description)
+PKGCONFIG_description="ifelse($4,,$PACKAGE_SUMMARY,$4)"
+test ".$PKGCONFIG_description" != "." || \
+PKGCONFIG_description="$PKGCONFIG_libname Library"
+PKGCONFIG_description=`eval echo "$PKGCONFIG_description"`
+PKGCONFIG_description=`eval echo "$PKGCONFIG_description"`
+AC_MSG_RESULT($PKGCONFIG_description)
+
+AC_MSG_CHECKING(our pkgconfig requires)
+PKGCONFIG_requires="ifelse($2,,$PACKAGE_REQUIRES,$2)"
+PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"`
+PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"`
+AC_MSG_RESULT($PKGCONFIG_requires)
+
+AC_MSG_CHECKING(our pkgconfig ext libs)
+PKGCONFIG_pkglibs="$PACKAGE_LIBS"
+test ".$PKGCONFIG_pkglibs" != "." || PKGCONFIG_pkglibs="-l$PKGCONFIG_libname"
+PKGCONFIG_libs="ifelse($3,,$PKGCONFIG_pkglibs $LIBS,$3)"
+PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"`
+PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"`
+AC_MSG_RESULT($PKGCONFIG_libs)
+
+AC_MSG_CHECKING(our pkgconfig cppflags)
+PKGCONFIG_cppflags="ifelse($5,,$CPPFLAGS $PACKAGE_CFLAGS,$5)"
+PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"`
+PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"`
+AC_MSG_RESULT($PKGCONFIG_cppflags)
+
+AC_MSG_CHECKING(our pkgconfig ldflags)
+PKGCONFIG_ldflags="ifelse($6,,$LDFLAGS $PACKAGE_LDFLAGS,$5)"
+PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"`
+PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"`
+AC_MSG_RESULT($PKGCONFIG_ldflags)
+
+test ".$PKGCONFIG_generate" != "." || \
+PKGCONFIG_generate="ifelse($1,,$PKGCONFIG_libname.pc,$1)"
+PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"`
+PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"`
+test "$pkgconfig_libfile" != "$PKGCONFIG_generate" && (
+AC_MSG_RESULT(generate the pkgconfig later... $PKGCONFIG_generate))
+
+if test ".$PKGCONFIG_src_libdir" = "." ; then
+PKGCONFIG_src_libdir=`pwd`
+PKGCONFIG_src_libdir=`AS_DIRNAME("$PKGCONFIG_src_libdir/$PKGCONFIG_generate")`
+test ! -d $PKGCONFIG_src_libdir/src || \
+PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/src"
+case ".$objdir" in
+*libs) PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/$objdir" ;; esac
+AC_MSG_RESULT(noninstalled pkgconfig -L $PKGCONFIG_src_libdir)
+fi
+
+if test ".$PKGCONFIG_src_headers" = "." ; then
+PKGCONFIG_src_headers=`pwd`
+v="$ac_top_srcdir" ;
+test ".$v" != "." || v="$ax_spec_dir"
+test ".$v" != "." || v="$srcdir"
+case "$v" in /*) PKGCONFIG_src_headers="" ;; esac
+PKGCONFIG_src_headers=`AS_DIRNAME("$PKGCONFIG_src_headers/$v/x")`
+test ! -d $PKGCONFIG_src_headers/incl[]ude || \
+PKGCONFIG_src_headers="$PKGCONFIG_src_headers/incl[]ude"
+AC_MSG_RESULT(noninstalled pkgconfig -I $PKGCONFIG_src_headers)
+fi
+
+
+dnl AC_CONFIG_COMMANDS crap disallows to use $PKGCONFIG_libfile here...
+AC_CONFIG_COMMANDS([$ax_create_pkgconfig_generate],[
+pkgconfig_generate="$ax_create_pkgconfig_generate"
+if test ! -f "$pkgconfig_generate.in"
+then generate="true"
+elif grep ' generated by configure ' $pkgconfig_generate.in >/dev/null
+then generate="true"
+else generate="false";
+fi
+if $generate ; then
+AC_MSG_NOTICE(creating $pkgconfig_generate.in)
+cat > $pkgconfig_generate.in <<AXEOF
+# generated by configure / remove this line to disable regeneration
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+bindir=@bindir@
+libdir=@libdir@
+datarootdir=@datarootdir@
+datadir=@datadir@
+sysconfdir=@sysconfdir@
+includedir=@includedir@
+package=@PACKAGE@
+suffix=@suffix@
+
+Name: @PACKAGE_NAME@
+Description: @PACKAGE_DESCRIPTION@
+Version: @PACKAGE_VERSION@
+Requires: @PACKAGE_REQUIRES@
+Libs: -L\${libdir} @LDFLAGS@ @LIBS@
+Cflags: -I\${includedir} @CPPFLAGS@
+AXEOF
+fi # DONE generate $pkgconfig_generate.in
+AC_MSG_NOTICE(creating $pkgconfig_generate)
+cat >conftest.sed <<AXEOF
+s|@prefix@|${pkgconfig_prefix}|
+s|@exec_prefix@|${pkgconfig_execprefix}|
+s|@bindir@|${pkgconfig_bindir}|
+s|@libdir@|${pkgconfig_libdir}|
+s|@datarootdir@|${pkgconfig_datarootdir}|
+s|@datadir@|${pkgconfig_datadir}|
+s|@sysconfdir@|${pkgconfig_sysconfdir}|
+s|@includedir@|${pkgconfig_includedir}|
+s|@suffix@|${pkgconfig_suffix}|
+s|@PACKAGE@|${pkgconfig_package}|
+s|@PACKAGE_NAME@|${pkgconfig_libname}|
+s|@PACKAGE_DESCRIPTION@|${pkgconfig_description}|
+s|@PACKAGE_VERSION@|${pkgconfig_version}|
+s|@PACKAGE_REQUIRES@|${pkgconfig_requires}|
+s|@LIBS@|${pkgconfig_libs}|
+s|@LDFLAGS@|${pkgconfig_ldflags}|
+s|@CPPFLAGS@|${pkgconfig_cppflags}|
+AXEOF
+sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_generate
+if test ! -s $pkgconfig_generate ; then
+ AC_MSG_ERROR([$pkgconfig_generate is empty])
+fi ; rm conftest.sed # DONE generate $pkgconfig_generate
+pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.pc/'`
+AC_MSG_NOTICE(creating $pkgconfig_uninstalled)
+cat >conftest.sed <<AXEOF
+s|@prefix@|${pkgconfig_prefix}|
+s|@exec_prefix@|${pkgconfig_execprefix}|
+s|@bindir@|${pkgconfig_bindir}|
+s|@libdir@|${pkgconfig_src_libdir}|
+s|@datarootdir@|${pkgconfig_datarootdir}|
+s|@datadir@|${pkgconfig_datadir}|
+s|@sysconfdir@|${pkgconfig_sysconfdir}|
+s|@includedir@|${pkgconfig_src_headers}|
+s|@suffix@|${pkgconfig_suffix}|
+s|@PACKAGE@|${pkgconfig_package}|
+s|@PACKAGE_NAME@|${pkgconfig_libname}|
+s|@PACKAGE_DESCRIPTION@|${pkgconfig_description}|
+s|@PACKAGE_VERSION@|${pkgconfig_version}|
+s|@PACKAGE_REQUIRES@|${pkgconfig_requires}|
+s|@LIBS@|${pkgconfig_libs}|
+s|@LDFLAGS@|${pkgconfig_ldflags}|
+s|@CPPFLAGS@|${pkgconfig_cppflags}|
+AXEOF
+sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled
+if test ! -s $pkgconfig_uninstalled ; then
+ AC_MSG_ERROR([$pkgconfig_uninstalled is empty])
+fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled
+ pkgconfig_requires_add=`echo ${pkgconfig_requires}`
+if test ".$pkgconfig_requires_add" != "." ; then
+ pkgconfig_requires_add="pkg-config $pkgconfig_requires_add"
+ else pkgconfig_requires_add=":" ; fi
+pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.sh/'`
+AC_MSG_NOTICE(creating $pkgconfig_uninstalled)
+cat >conftest.sed <<AXEOF
+s|@prefix@|\"${pkgconfig_prefix}\"|
+s|@exec_prefix@|\"${pkgconfig_execprefix}\"|
+s|@bindir@|\"${pkgconfig_bindir}\"|
+s|@libdir@|\"${pkgconfig_src_libdir}\"|
+s|@datarootdir@|\"${pkgconfig_datarootdir}\"|
+s|@datadir@|\"${pkgconfig_datadir}\"|
+s|@sysconfdir@|\"${pkgconfig_sysconfdir}\"|
+s|@includedir@|\"${pkgconfig_src_headers}\"|
+s|@suffix@|\"${pkgconfig_suffix}\"|
+s|@PACKAGE@|\"${pkgconfig_package}\"|
+s|@PACKAGE_NAME@|\"${pkgconfig_libname}\"|
+s|@PACKAGE_DESCRIPTION@|\"${pkgconfig_description}\"|
+s|@PACKAGE_VERSION@|\"${pkgconfig_version}\"|
+s|@PACKAGE_REQUIRES@|\"${pkgconfig_requires}\"|
+s|@LIBS@|\"${pkgconfig_libs}\"|
+s|@LDFLAGS@|\"${pkgconfig_ldflags}\"|
+s|@CPPFLAGS@|\"${pkgconfig_cppflags}\"|
+s>Name:>for option\\; do case \"\$option\" in --list-all|--name) echo >
+s>Description: *>\\;\\; --help) pkg-config --help \\; echo Buildscript Of >
+s>Version: *>\\;\\; --modversion|--version) echo >
+s>Requires:>\\;\\; --requires) echo $pkgconfig_requires_add>
+s>Libs: *>\\;\\; --libs) echo >
+s>Cflags: *>\\;\\; --cflags) echo >
+/--libs)/a\\
+ $pkgconfig_requires_add
+/--cflags)/a\\
+ $pkgconfig_requires_add\\
+;; --variable=*) eval echo '\$'\`echo \$option | sed -e 's/.*=//'\`\\
+;; --uninstalled) exit 0 \\
+;; *) ;; esac done
+AXEOF
+sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled
+if test ! -s $pkgconfig_uninstalled ; then
+ AC_MSG_ERROR([$pkgconfig_uninstalled is empty])
+fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled
+],[
+dnl AC_CONFIG_COMMANDS crap, the AS_PUSHVAR defines are invalid here...
+ax_create_pkgconfig_generate="$ax_create_pkgconfig_generate"
+pkgconfig_prefix='$prefix'
+pkgconfig_execprefix='$exec_prefix'
+pkgconfig_bindir='$bindir'
+pkgconfig_libdir='$libdir'
+pkgconfig_includedir='$includedir'
+pkgconfig_datarootdir='$datarootdir'
+pkgconfig_datadir='$datadir'
+pkgconfig_sysconfdir='$sysconfdir'
+pkgconfig_suffix='$ax_create_pkgconfig_suffix'
+pkgconfig_package='$PACKAGE_NAME'
+pkgconfig_libname='$ax_create_pkgconfig_libname'
+pkgconfig_description='$ax_create_pkgconfig_description'
+pkgconfig_version='$ax_create_pkgconfig_version'
+pkgconfig_requires='$ax_create_pkgconfig_requires'
+pkgconfig_libs='$ax_create_pkgconfig_libs'
+pkgconfig_ldflags='$ax_create_pkgconfig_ldflags'
+pkgconfig_cppflags='$ax_create_pkgconfig_cppflags'
+pkgconfig_src_libdir='$ax_create_pkgconfig_src_libdir'
+pkgconfig_src_headers='$ax_create_pkgconfig_src_headers'
+])dnl
+AS_VAR_POPDEF([PKGCONFIG_suffix])dnl
+AS_VAR_POPDEF([PKGCONFIG_libdir])dnl
+AS_VAR_POPDEF([PKGCONFIG_libfile])dnl
+AS_VAR_POPDEF([PKGCONFIG_libname])dnl
+AS_VAR_POPDEF([PKGCONFIG_version])dnl
+AS_VAR_POPDEF([PKGCONFIG_description])dnl
+AS_VAR_POPDEF([PKGCONFIG_requires])dnl
+AS_VAR_POPDEF([PKGCONFIG_pkglibs])dnl
+AS_VAR_POPDEF([PKGCONFIG_libs])dnl
+AS_VAR_POPDEF([PKGCONFIG_ldflags])dnl
+AS_VAR_POPDEF([PKGCONFIG_cppflags])dnl
+AS_VAR_POPDEF([PKGCONFIG_generate])dnl
+AS_VAR_POPDEF([PKGCONFIG_src_libdir])dnl
+AS_VAR_POPDEF([PKGCONFIG_src_headers])dnl
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir.m4
new file mode 100644
index 00000000000..7c65c2955f1
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir.m4
@@ -0,0 +1,248 @@
+dnl @synopsis AX_ENABLE_BUILDDIR [(dirstring-or-command [,Makefile.mk [,-all]])]
+dnl
+dnl if the current configure was run within the srcdir then we move all
+dnl configure-files into a subdir and let the configure steps continue
+dnl there. We provide an option --disable-builddir to suppress the move
+dnl into a separate builddir.
+dnl
+dnl Defaults:
+dnl
+dnl $1 = $host (overridden with $HOST)
+dnl $2 = Makefile.mk
+dnl $3 = -all
+dnl
+dnl This macro must be called before AM_INIT_AUTOMAKE.
+dnl
+dnl it creates a default toplevel srcdir Makefile from the information
+dnl found in the created toplevel builddir Makefile. It just copies the
+dnl variables and rule-targets, each extended with a default
+dnl rule-execution that recurses into the build directory of the
+dnl current "HOST". You can override the auto-dection through
+dnl `config.guess` and build-time of course, as in
+dnl
+dnl make HOST=i386-mingw-cross
+dnl
+dnl which can of course set at configure time as well using
+dnl
+dnl configure --host=i386-mingw-cross
+dnl
+dnl After the default has been created, additional rules can be
+dnl appended that will not just recurse into the subdirectories and
+dnl only ever exist in the srcdir toplevel makefile - these parts are
+dnl read from the $2 = Makefile.mk file
+dnl
+dnl The automatic rules are usually scanning the toplevel Makefile for
+dnl lines like '#### $host |$builddir' to recognize the place where to
+dnl recurse into. Usually, the last one is the only one used. However,
+dnl almost all targets have an additional "*-all" rule which makes the
+dnl script to recurse into _all_ variants of the current HOST (!!)
+dnl setting. The "-all" suffix can be overridden for the macro as well.
+dnl
+dnl a special rule is only given for things like "dist" that will copy
+dnl the tarball from the builddir to the sourcedir (or $(PUB)) for
+dnl reason of convenience.
+dnl
+dnl @category Misc
+dnl @author Guido Draheim
+dnl @version 2007-02-01
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_ENABLE_BUILDDIR],[
+AC_REQUIRE([AC_CANONICAL_HOST])[]dnl
+AC_REQUIRE([AX_CONFIGURE_ARGS])[]dnl
+AC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl
+AS_VAR_PUSHDEF([SUB],[ax_enable_builddir])dnl
+AS_VAR_PUSHDEF([AUX],[ax_enable_builddir_auxdir])dnl
+AS_VAR_PUSHDEF([SED],[ax_enable_builddir_sed])dnl
+SUB="."
+AC_ARG_ENABLE([builddir], AC_HELP_STRING(
+ [--disable-builddir],[disable automatic build in subdir of sources])
+ ,[SUB="$enableval"], [SUB="yes"])
+if test ".$ac_srcdir_defaulted" != ".no" ; then
+if test ".$srcdir" = ".." ; then
+ if test -f config.status ; then
+ AC_MSG_NOTICE(toplevel srcdir already configured... skipping subdir build)
+ else
+ test ".$SUB" = "." && SUB="."
+ test ".$SUB" = ".no" && SUB="."
+ test ".$TARGET" = "." && TARGET="$target"
+ test ".$SUB" = ".yes" && SUB="m4_ifval([$1], [$1],[$TARGET])"
+ if test ".$SUB" != ".." ; then # we know where to go and
+ AS_MKDIR_P([$SUB])
+ echo __.$SUB.__ > $SUB/conftest.tmp
+ cd $SUB
+ if grep __.$SUB.__ conftest.tmp >/dev/null 2>/dev/null ; then
+ rm conftest.tmp
+ AC_MSG_RESULT([continue configure in default builddir "./$SUB"])
+ else
+ AC_MSG_ERROR([could not change to default builddir "./$SUB"])
+ fi
+ srcdir=`echo "$SUB" |
+ sed -e 's,^\./,,;s,[[^/]]$,&/,;s,[[^/]]*/,../,g;s,[[/]]$,,;'`
+ # going to restart from subdirectory location
+ test -f $srcdir/config.log && mv $srcdir/config.log .
+ test -f $srcdir/confdefs.h && mv $srcdir/confdefs.h .
+ test -f $srcdir/conftest.log && mv $srcdir/conftest.log .
+ test -f $srcdir/$cache_file && mv $srcdir/$cache_file .
+ AC_MSG_RESULT(....exec $SHELL $srcdir/[$]0 "--srcdir=$srcdir" "--enable-builddir=$SUB" ${1+"[$]@"})
+ case "[$]0" in # restart
+ [/\\]*) eval $SHELL "'[$]0'" "'--srcdir=$srcdir'" "'--enable-builddir=$SUB'" $ac_configure_args ;;
+ *) eval $SHELL "'$srcdir/[$]0'" "'--srcdir=$srcdir'" "'--enable-builddir=$SUB'" $ac_configure_args ;;
+ esac ; exit $?
+ fi
+ fi
+fi fi
+dnl ac_path_prog uses "set dummy" to override $@ which would defeat the "exec"
+AC_PATH_PROG(SED,gsed sed, sed)
+AUX="$ac_aux_dir"
+AUX=`echo "$AUX" | $SED -e "s|$ac_top_srcdir|.|"`
+test ".$AUX" = "." && AUX="$ac_aux_dir"
+test ".$AUX" = "." && AUX="."
+AS_VAR_POPDEF([SED])dnl
+AS_VAR_POPDEF([AUX])dnl
+AS_VAR_POPDEF([SUB])dnl
+AC_CONFIG_COMMANDS([buildir],[dnl .............. config.status ..............
+AS_VAR_PUSHDEF([SUB],[ax_enable_builddir])dnl
+AS_VAR_PUSHDEF([TOP],[top_srcdir])dnl
+AS_VAR_PUSHDEF([SRC],[ac_top_srcdir])dnl
+AS_VAR_PUSHDEF([AUX],[ax_enable_builddir_auxdir])dnl
+AS_VAR_PUSHDEF([SED],[ax_enable_builddir_sed])dnl
+pushdef([END],[Makefile.mk])dnl
+pushdef([_ALL],[ifelse([$3],,[-all],[$3])])dnl
+ SRC="$ax_enable_builddir_srcdir"
+ if test ".$SUB" = "." ; then
+ if test -f "$TOP/Makefile" ; then
+ AC_MSG_NOTICE([skipping TOP/Makefile - left untouched])
+ else
+ AC_MSG_NOTICE([skipping TOP/Makefile - not created])
+ fi
+ else
+ if test -f "$SRC/Makefile" ; then
+ a=`grep "^VERSION " "$SRC/Makefile"` ; b=`grep "^VERSION " Makefile`
+ test "$a" != "$b" && rm "$SRC/Makefile"
+ fi
+ if test -f "$SRC/Makefile" ; then
+ echo "$SRC/Makefile : $SRC/Makefile.in" > $tmp/conftemp.mk
+ echo " []@ echo 'REMOVED,,,' >\$[]@" >> $tmp/conftemp.mk
+ eval "${MAKE-make} -f $tmp/conftemp.mk 2>/dev/null >/dev/null"
+ if grep '^REMOVED,,,' "$SRC/Makefile" >/dev/null
+ then rm $SRC/Makefile ; fi
+ cp $tmp/conftemp.mk $SRC/makefiles.mk~ ## DEBUGGING
+ fi
+ if test ! -f "$SRC/Makefile" ; then
+ AC_MSG_NOTICE([create TOP/Makefile guessed from local Makefile])
+ x='`' ; cat >$tmp/conftemp.sed <<_EOF
+/^\$/n
+x
+/^\$/bS
+x
+/\\\\\$/{H;d;}
+{H;s/.*//;x;}
+bM
+:S
+x
+/\\\\\$/{h;d;}
+{h;s/.*//;x;}
+:M
+s/\\(\\n\\) /\\1 /g
+/^ /d
+/^[[ ]]*[[\\#]]/d
+/^VPATH *=/d
+s/^srcdir *=.*/srcdir = ./
+s/^top_srcdir *=.*/top_srcdir = ./
+/[[:=]]/!d
+/^\\./d
+s/:.*/:/
+/:\$/s/ / /g
+/:\$/s/ \\([[a-z]][[a-z-]]*[[a-z]]\\) / \\1 \\1[]_ALL /g
+/:\$/s/^\\([[a-z]][[a-z-]]*[[a-z]]\\)\\([[ :]]\\)/\\1 \\1[]_ALL\\2/
+/:\$/s/ / /g
+/^all all[]_ALL[[ :]]/i\\
+all-configured : all[]_ALL
+dnl dist-all exists... and would make for dist-all-all
+/[]_ALL[]_ALL/d
+/^.*[[=]]/!a\\
+ @ HOST="\$(HOST)\" \\\\\\
+ ; test ".\$\$HOST" = "." && HOST=$x sh $AUX/config.guess $x \\\\\\
+ ; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\
+ ; use=$x basename "\$\@" _ALL $x; n=$x echo \$\$BUILD | wc -w $x \\\\\\
+ ; echo "MAKE \$\$HOST : \$\$n * \$\@"; if test "\$\$n" = "0" ; then : \\\\\\
+ ; BUILD=$x grep "^####.*|" Makefile |tail -1| sed -e 's/.*|//' $x ; fi \\\\\\
+ ; test ".\$\$BUILD" = "." && BUILD="." \\\\\\
+ ; test "\$\$use" = "\$\@" && BUILD=$x echo "\$\$BUILD" | tail -1 $x \\\\\\
+ ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+ ; (cd "\$\$i" && test ! -f configure && \$(MAKE) \$\$use) || exit; done
+dnl special rule add-on: "dist" copies the tarball to $(PUB). (source tree)
+/dist[]_ALL *:/a\\
+ @ HOST="\$(HOST)\" \\\\\\
+ ; test ".\$\$HOST" = "." && HOST=$x sh $AUX/config.guess $x \\\\\\
+ ; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\
+ ; found=$x echo \$\$BUILD | wc -w $x \\\\\\
+ ; echo "MAKE \$\$HOST : \$\$found \$(PACKAGE)-\$(VERSION).tar.*" \\\\\\
+ ; if test "\$\$found" = "0" ; then : \\\\\\
+ ; BUILD=$x grep "^#### .*|" Makefile |tail -1| sed -e 's/.*|//' $x \\\\\\
+ ; fi ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+ ; for f in \$\$i/\$(PACKAGE)-\$(VERSION).tar.* \\\\\\
+ ; do test -f "\$\$f" && mv "\$\$f" \$(PUB). ; done ; break ; done
+dnl special rule add-on: "distclean" removes all local builddirs completely
+/distclean[]_ALL *:/a\\
+ @ HOST="\$(HOST)\" \\\\\\
+ ; test ".\$\$HOST" = "." && HOST=$x sh $AUX/config.guess $x \\\\\\
+ ; BUILD=$x grep "^#### .*| *\\./" Makefile | sed -e 's/.*|//' $x \\\\\\
+ ; use=$x basename "\$\@" _ALL $x; n=$x echo \$\$BUILD | wc -w $x \\\\\\
+ ; echo "MAKE \$\$HOST : \$\$n * \$\@ (all local builds)" \\\\\\
+ ; test ".\$\$BUILD" = "." && BUILD="." \\\\\\
+ ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+ ; echo "# rm -r \$\$i"; done ; echo "# (sleep 3)" ; sleep 3 \\\\\\
+ ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+ ; echo "rm -r \$\$i"; (rm -r "\$\$i") ; done ; rm Makefile
+_EOF
+ cp "$tmp/conftemp.sed" "$SRC/makefile.sed~" ## DEBUGGING
+ $SED -f $tmp/conftemp.sed Makefile >$SRC/Makefile
+ if test -f "$SRC/m4_ifval([$2],[$2],[END])" ; then
+ AC_MSG_NOTICE([extend TOP/Makefile with TOP/m4_ifval([$2],[$2],[END])])
+ cat $SRC/END >>$SRC/Makefile
+ fi ; xxxx="####"
+ echo "$xxxx CONFIGURATIONS FOR TOPLEVEL MAKEFILE: " >>$SRC/Makefile
+ # sanity check
+ if grep '^; echo "MAKE ' $SRC/Makefile >/dev/null ; then
+ AC_MSG_NOTICE([buggy sed found - it deletes tab in "a" text parts])
+ $SED -e '/^@ HOST=/s/^/ /' -e '/^; /s/^/ /' $SRC/Makefile \
+ >$SRC/Makefile~
+ (test -s $SRC/Makefile~ && mv $SRC/Makefile~ $SRC/Makefile) 2>/dev/null
+ fi
+ else
+ xxxx="\\#\\#\\#\\#"
+ # echo "/^$xxxx *$ax_enable_builddir_host /d" >$tmp/conftemp.sed
+ echo "s!^$xxxx [[^|]]* | *$SUB *\$!$xxxx ...... $SUB!" >$tmp/conftemp.sed
+ $SED -f "$tmp/conftemp.sed" "$SRC/Makefile" >$tmp/mkfile.tmp
+ cp "$tmp/conftemp.sed" "$SRC/makefiles.sed~" ## DEBUGGING
+ cp "$tmp/mkfile.tmp" "$SRC/makefiles.out~" ## DEBUGGING
+ if cmp -s "$SRC/Makefile" "$tmp/mkfile.tmp" 2>/dev/null ; then
+ AC_MSG_NOTICE([keeping TOP/Makefile from earlier configure])
+ rm "$tmp/mkfile.tmp"
+ else
+ AC_MSG_NOTICE([reusing TOP/Makefile from earlier configure])
+ mv "$tmp/mkfile.tmp" "$SRC/Makefile"
+ fi
+ fi
+ AC_MSG_NOTICE([build in $SUB (HOST=$ax_enable_builddir_host)])
+ xxxx="####"
+ echo "$xxxx" "$ax_enable_builddir_host" "|$SUB" >>$SRC/Makefile
+ fi
+popdef([END])dnl
+AS_VAR_POPDEF([SED])dnl
+AS_VAR_POPDEF([AUX])dnl
+AS_VAR_POPDEF([SRC])dnl
+AS_VAR_POPDEF([TOP])dnl
+AS_VAR_POPDEF([SUB])dnl
+],[dnl
+ax_enable_builddir_srcdir="$srcdir" # $srcdir
+ax_enable_builddir_host="$HOST" # $HOST / $host
+ax_enable_builddir_version="$VERSION" # $VERSION
+ax_enable_builddir_package="$PACKAGE" # $PACKAGE
+ax_enable_builddir_auxdir="$ax_enable_builddir_auxdir" # $AUX
+ax_enable_builddir_sed="$ax_enable_builddir_sed" # $SED
+ax_enable_builddir="$ax_enable_builddir" # $SUB
+])dnl
+])
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir_uname.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir_uname.m4
new file mode 100644
index 00000000000..242e44b6adc
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir_uname.m4
@@ -0,0 +1,164 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_enable_builddir_uname.m4
+dnl @synopsis AX_ENABLE_BUILDDIR_UNAME [(dirstring-or-command [,Makefile.mk])]
+dnl
+dnl if the current configure was run within the srcdir then we move all
+dnl configure-files into a subdir and let the configure steps continue
+dnl there. We provide an option --disable-builddir to suppress the move
+dnl into a separate builddir.
+dnl
+dnl Defaults:
+dnl
+dnl $1 = $build (defaults to `uname -msr`.d)
+dnl $2 = Makefile.mk
+dnl $3 = -all
+dnl
+dnl This macro must be called before AM_INIT_AUTOMAKE.
+dnl
+dnl it creates a default toplevel srcdir Makefile from the information
+dnl found in the created toplevel builddir Makefile. It just copies the
+dnl variables and rule-targets, each extended with a default
+dnl rule-execution that recurses into the build directory of the
+dnl current "BUILD". You can override the auto-dection through
+dnl `uname -msr | tr " /" "__"`.d at build-time of course, as in
+dnl
+dnl make BUILD=i386-mingw-cross
+dnl
+dnl After the default has been created, additional rules can be
+dnl appended that will not just recurse into the subdirectories and
+dnl only ever exist in the srcdir toplevel makefile - these parts are
+dnl read from the $2 = Makefile.mk file
+dnl
+dnl The automatic rules are usually scanning the toplevel Makefile for
+dnl lines like '#### $build |$builddir' to recognize the place where to
+dnl recurse into. Usually, the last one is the only one used. However,
+dnl almost all targets have an additional "*-all" rule which makes the
+dnl script to recurse into _all_ variants of the current BUILD (!!)
+dnl setting. The "-all" suffix can be overridden for the macro as well.
+dnl
+dnl a special rule is only given for things like "dist" that will copy
+dnl the tarball from the builddir to the sourcedir (or $(PUB)) for
+dnl reason of convenience.
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim
+dnl @version 2005-12-03
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_ENABLE_BUILDDIR_UNAME],[
+AC_REQUIRE([AC_CANONICAL_HOST])[]dnl
+AC_REQUIRE([AX_CONFIGURE_ARGS])[]dnl
+AC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl
+AS_VAR_PUSHDEF([SUB],[ax_enable_builddir])dnl
+AS_VAR_PUSHDEF([SED],[ax_enable_builddir_sed])dnl
+SUB="."
+AC_ARG_ENABLE([builddir], AC_HELP_STRING(
+ [--disable-builddir],[disable automatic build in subdir of sources])
+ ,[SUB="$enableval"], [SUB="yes"])
+if test ".$ac_srcdir_defaulted" != ".no" ; then
+if test ".$srcdir" = ".." ; then
+ if test -f config.status ; then
+ AC_MSG_NOTICE(toplevel srcdir already configured... skipping subdir build)
+ else
+ test ".$SUB" = "." && SUB="."
+ test ".$SUB" = ".no" && SUB="."
+ test ".$BUILD" = "." && BUILD=`uname -msr | tr " /" "__"`.d
+ test ".$SUB" = ".yes" && SUB="m4_ifval([$1], [$1],[$BUILD])"
+ if test ".$SUB" != ".." ; then # we know where to go and
+ AS_MKDIR_P([$SUB])
+ echo __.$SUB.__ > $SUB/conftest.tmp
+ cd $SUB
+ if grep __.$SUB.__ conftest.tmp >/dev/null 2>/dev/null ; then
+ rm conftest.tmp
+ AC_MSG_RESULT([continue configure in default builddir "./$SUB"])
+ else
+ AC_MSG_ERROR([could not change to default builddir "./$SUB"])
+ fi
+ srcdir=`echo "$SUB" |
+ sed -e 's,^\./,,;s,[[^/]]$,&/,;s,[[^/]]*/,../,g;s,[[/]]$,,;'`
+ # going to restart from subdirectory location
+ test -f $srcdir/config.log && mv $srcdir/config.log .
+ test -f $srcdir/confdefs.h && mv $srcdir/confdefs.h .
+ test -f $srcdir/conftest.log && mv $srcdir/conftest.log .
+ test -f $srcdir/$cache_file && mv $srcdir/$cache_file .
+ AC_MSG_RESULT(....exec $SHELL "$srcdir/[$]0" "--srcdir=$srcdir" "--enable-builddir=$SUB" $ac_configure_args)
+ case "[$]0" in # restart
+ [/\\]*) eval $SHELL "'[$]0'" "'--srcdir=$srcdir'" "'--enable-builddir=$SUB'" $ac_configure_args ;;
+ *) eval $SHELL "'$srcdir/[$]0'" "'--srcdir=$srcdir'" "'--enable-builddir=$SUB'" $ac_configure_args ;;
+ esac ; exit $?
+ fi
+ fi
+fi fi
+dnl ac_path_prog uses "set dummy" to override $@ which would defeat the "exec"
+AC_PATH_PROG(SED,gsed sed, sed)
+AS_VAR_POPDEF([SED])dnl
+AS_VAR_POPDEF([SUB])dnl
+AC_CONFIG_COMMANDS([buildir],[dnl .............. config.status ..............
+AS_VAR_PUSHDEF([SUB],[ax_enable_builddir])dnl
+AS_VAR_PUSHDEF([TOP],[top_srcdir])dnl
+AS_VAR_PUSHDEF([SRC],[ac_top_srcdir])dnl
+AS_VAR_PUSHDEF([SED],[ax_enable_builddir_sed])dnl
+pushdef([END],[Makefile.mk])dnl
+ SRC="$ax_enable_builddir_srcdir"
+ if test ".$SUB" = "." ; then
+ if test -f "$TOP/Makefile" ; then
+ AC_MSG_NOTICE([skipping TOP/Makefile - left untouched])
+ else
+ AC_MSG_NOTICE([skipping TOP/Makefile - not created])
+ fi
+ else
+ AC_MSG_NOTICE([create TOP/Makefile guessed from local Makefile])
+ x='`' ; cat >$tmp/conftemp.sed <<_EOF
+/^\$/n
+x
+/^\$/bS
+x
+/\\\\\$/{H;d;}
+{H;s/.*//;x;}
+bM
+:S
+x
+/\\\\\$/{h;d;}
+{h;s/.*//;x;}
+:M
+s/\\(\\n\\) /\\1 /g
+/^ /d
+/^[[ ]]*[[\\#]]/d
+/^VPATH *=/d
+s/^srcdir *=.*/srcdir = ./
+s/^top_srcdir *=.*/top_srcdir = ./
+/[[:=]]/!d
+/^\\./d
+s/:.*/:/
+/:\$/s/ / /g
+/:\$/s/ / /g
+/^.*[[=]]/!s%\$% ; (cd \$(BUILD) \\&\\& \$(ISNOTSRCDIR) \\&\\& \$(MAKE) "\$\@") || exit ; \$(MAKE) done "RULE=\$\@"%
+_EOF
+ test ".$USE_MAINTAINER_MODE" = ".no" || \
+ cp "$tmp/conftemp.sed" "$SRC/makefile.sed~" ## DEBUGGING
+ echo 'BUILD=`uname -msr | tr " /" "__"`.d' >$SRC/Makefile
+ echo 'ISNOTSRCDIR=test ! -f configure' >>$SRC/Makefile
+ $SED -f $tmp/conftemp.sed Makefile >>$SRC/Makefile
+ echo 'done: ;@ if grep "$(RULE)-done .*:" Makefile > /dev/null; then dnl
+ echo $(MAKE) $(RULE)-done ; $(MAKE) $(RULE)-done ; else true ; fi' dnl
+ >> $SRC/Makefile
+ if test -f "$SRC/m4_ifval([$2],[$2],[END])" ; then
+ AC_MSG_NOTICE([extend TOP/Makefile with TOP/m4_ifval([$2],[$2],[END])])
+ cat $SRC/END >>$SRC/Makefile
+ fi
+ AC_MSG_NOTICE([make uses BUILD=$SUB (on $ax_enable_builddir_host:)])
+ fi
+popdef([END])dnl
+AS_VAR_POPDEF([SED])dnl
+AS_VAR_POPDEF([SRC])dnl
+AS_VAR_POPDEF([TOP])dnl
+AS_VAR_POPDEF([SUB])dnl
+],[dnl
+ax_enable_builddir_srcdir="$srcdir" # $srcdir
+ax_enable_builddir_host="$HOST" # $HOST / $host
+ax_enable_builddir_version="$VERSION" # $VERSION
+ax_enable_builddir_package="$PACKAGE" # $PACKAGE
+ax_enable_builddir_sed="$ax_enable_builddir_sed" # $SED
+ax_enable_builddir="$ax_enable_builddir" # $SUB
+])dnl
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_expand_prefix.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_expand_prefix.m4
new file mode 100644
index 00000000000..2d6b39d06c9
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_expand_prefix.m4
@@ -0,0 +1,35 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_expand_prefix.m4
+dnl @synopsis AX_EXPAND_PREFIX
+dnl
+dnl when $prefix and $exec_prefix are still set to NONE then set them
+dnl to the usual default values - being based on $ac_default_prefix. -
+dnl this macro can be AC_REQUIREd by other macros that need to compute
+dnl values for installation directories. It has been observed that it
+dnl was done wrong over and over again, so this is a bit more safe to
+dnl do.
+dnl
+dnl remember - setting exec_prefix='${prefix}' needs you interpolate
+dnl directories multiple times, it is not sufficient to just say
+dnl MYVAR="${datadir}/putter" but you do have to run `eval` a few
+dnl times, sth. like MYVAR=`eval "echo \"$MYVAR\""` done atleast two
+dnl times.
+dnl
+dnl The implementation of this macro simply picks up the lines that
+dnl would be run at the start of AC_OUTPUT anyway to set the
+dnl prefix/exec_prefix defaults. Between AC_INIT and the first command
+dnl to AC_REQUIRE this macro you can set the two variables to something
+dnl explicit instead. Probably, any command to compute installation
+dnl directories should be run _after_ AM_INIT_AUTOMAKE
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2005-01-21
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_EXPAND_PREFIX],[dnl
+ # The prefix default can be set in configure.ac (otherwise it is /usr/local)
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix. Allows to override the makevar 'prefix' later
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_maintainer_mode_auto_silent.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_maintainer_mode_auto_silent.m4
new file mode 100644
index 00000000000..3f4123b5162
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_maintainer_mode_auto_silent.m4
@@ -0,0 +1,40 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_maintainer_mode_auto_silent.m4
+dnl @synopsis AX_MAINTAINER_MODE_AUTO_SILENT
+dnl
+dnl Set autotools to error/sleep settings so that they are not run when
+dnl being errornously triggered. Likewise make libtool-silent when
+dnl libtool has been used.
+dnl
+dnl I am using the macro quite a lot since some automake versions had
+dnl the tendency to try to rerun some autotools on a mere make even
+dnl when not quite in --maintainer-mode. That is very annoying.
+dnl Likewise, a user who installs from source does not want to see
+dnl doubled compiler messages.
+dnl
+dnl I did not put an AC-REQUIRE(MAINTAINER_MODE) in here - should I?
+dnl
+dnl @category Misc
+dnl @category Automake
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2005-01-21
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_MAINTAINER_MODE_AUTO_SILENT],[dnl
+dnl ac_REQUIRE([am_MAINTAINER_MODE])dn
+AC_MSG_CHECKING(auto silent in maintainer mode)
+if test "$USE_MAINTAINER_MODE" = "no" ; then
+ test ".$TIMEOUT" = "." && TIMEOUT="9"
+ AUTOHEADER="sleep $TIMEOUT ; true || autoheader || skipped"
+ AUTOMAKE="sleep $TIMEOUT ; true || automake || skipped"
+ AUTOCONF="sleep $TIMEOUT ; true || autoconf || skipped"
+ if test ".$LIBTOOL" != "." ; then
+ LIBTOOL="$LIBTOOL --silent"
+ AC_MSG_RESULT([libtool-silent, auto-sleep-9])
+ else
+ AC_MSG_RESULT([auto-sleep-9])
+ fi
+else
+ AC_MSG_RESULT([no])
+fi
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_not_enable_frame_pointer.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_not_enable_frame_pointer.m4
new file mode 100644
index 00000000000..9c44f902e57
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_not_enable_frame_pointer.m4
@@ -0,0 +1,37 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_not_enable_frame_pointer.m4
+dnl @synopsis AX_NOT_ENABLE_FRAME_POINTER ([shellvar])
+dnl
+dnl add --enable-frame-pointer option, the default will add the gcc
+dnl --fomit-frame-pointer option to the shellvar (per default CFLAGS)
+dnl and remove the " -g " debuginfo option from it. In other words, the
+dnl default is "--disable-frame-pointer"
+dnl
+dnl @category C
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2018-02-22
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_NOT_ENABLE_FRAME_POINTER],[dnl
+AS_VAR_PUSHDEF([VAR],[enable_frame_pointer])dnl
+AC_MSG_CHECKING([m4_ifval($1,$1,CFLAGS) frame-pointer])
+AC_ARG_ENABLE([frame-pointer], AC_HELP_STRING(
+ [--enable-frame-pointer],[enable callframe generation for debugging]))
+if test ".$VAR" = "."; then
+ case ".$enable_debug" in .|.no|.no,*) : ;; *) VAR="$enable_debug" ;; esac
+ case ".$with_debug" in .|.no|.no,*) : ;; *) VAR="$with_debug" ;; esac
+fi
+case ".$VAR" in
+ .|.no|.no,*) test ".$VAR" = "." && VAR="no"
+ m4_ifval($1,$1,CFLAGS)=`echo dnl
+ " $m4_ifval($1,$1,CFLAGS) " | sed -e 's/ -g / /'`
+ if test ".$GCC" = ".yes" ; then
+ m4_ifval($1,$1,CFLAGS)="$m4_ifval($1,$1,CFLAGS) -fomit-frame-pointer"
+ AC_MSG_RESULT([$VAR, -fomit-frame-pointer added])
+ else
+ AC_MSG_RESULT([$VAR, -g removed])
+ fi ;;
+ *) AC_MSG_RESULT([$VAR, kept]) ;;
+esac
+AS_VAR_POPDEF([VAR])dnl
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_pax_tar.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_pax_tar.m4
new file mode 100644
index 00000000000..588f9e0093a
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_pax_tar.m4
@@ -0,0 +1,134 @@
+dnl @synopsis AX_PAX_TAR
+dnl
+dnl Most people will not know about the "tar"-wars a long while back.
+dnl In the end the proponents of cpio lost just as all the oldish
+dnl tar formats were dumped in favor of a new format that based on
+dnl the successful "ustar" format. The extensions did mostly cover
+dnl a portable definition of filenames and such stuff.
+
+dnl The most interesting thing however is that the opengroup (the.
+dnl UNIX standardization body) did not document the tool for the
+dnl portable tar format under the name of "tar" but instead it did
+dnl use the name "pax" which stands for "portable archiver". Even
+dnl more so, the "pax" utitility is required to understand the old
+dnl tar and cpio formats but it will default to a "tar"-like variant.
+dnl The "pax" tool has been in the Unix standard ever since UNIX92.
+dnl
+dnl Interestingly gnu-tar will use the pax features as soon as they
+dnl are required - but you can not be sure if gnu-tar is available,
+dnl and it is quite likely that the system tar will default to the
+dnl old format of the system in whatever it was. On any currrent
+dnl Unix system however one should be able to find "pax", so one
+dnl should prefer that one as the most portable tool.
+
+dnl The downside is however that the commandline options of "pax"
+dnl are different from "tar"/"gtar". That's why we define two
+dnl subst'ed names here - PAX_TAR_CREATE and PAX_TAR_EXTRACT, For
+dnl extra portability the first argument should be "*.tar" file
+dnl name but you should be aware that in most cases the "pax" tool
+dnl is invoked. Nota bene: do not use "*.pax" as the file name
+dnl extension because some file managers interpret it as a TeX file.
+dnl
+dnl @category C
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2009-05-22
+dnl @license GPLWithACException
+
+AC_DEFUN([_AX_PAX_TAR_TOOL],[
+if test -z "$ac_cv_pax_tar_tool"; then
+ AC_PATH_PROG([PAX],[pax], :)
+ if test "$ac_cv_path_PAX" != ":"; then
+ ac_cv_pax_tar_tool="pax"
+ else #3
+ AC_PATH_PROG([GNUTAR],[gnutar], :)
+ if test "$ac_cv_path_GNUTAR" != ":"; then
+ ac_cv_pax_tar_tool="gnutar"
+ else #1
+ AC_PATH_PROG([GTAR],[gtar], :)
+ if test "$ac_cv_path_GTAR" != ":"; then
+ ac_cv_pax_tar_tool="gtar"
+ else #2
+ AC_PATH_PROG([TAR],[tar], :)
+ if test "$ac_cv_path_TAR" != ":"; then
+ ac_cv_pax_tar_tool="tar"
+ fi
+ fi fi fi #3 #2 #1
+ AC_MSG_CHECKING([for portable tar tool])
+ AC_MSG_RESULT([$ac_cv_pax_tar_tool])
+fi
+])
+
+dnl TODO: on MacOsX the "--help" documentation of the tool differs
+dnl from the capabilities of the installed pax tool. So test reality.
+AC_DEFUN([_AX_PAX_SINGLE_ARCHIVE],[
+ if test "$ac_cv_pax_tar_tool$ax_pax_single_archive" = "pax"; then
+ AC_MSG_CHECKING([for pax single archive option])
+ echo foo > conftest.txt ; rm -f conftest.tar
+ AC_RUN_LOG(["$ac_cv_path_PAX" -w -O -f conftest.tar conftest.txt])
+ if test -s conftest.tar; then
+ ax_pax_single_archive="-O" ; ac_hint="(probably a BSD pax)"
+ else
+ ax_pax_single_archive=" " ; ac_hint="(the -O option did not work)"
+ fi
+ AC_MSG_RESULT([$ax_pax_single_archive $ac_hint])
+ fi
+])
+
+AC_DEFUN([_AX_PAX_TAR_CREATE],[
+ _AX_PAX_TAR_TOOL
+ _AX_PAX_SINGLE_ARCHIVE
+ AC_MSG_CHECKING([for command to create portable tar archives])
+ if test "$ac_cv_pax_tar_tool" = "gnutar"; then
+ ax_pax_tar_create="'$ac_cv_path_GNUTAR' cf"
+ elif test "$ac_cv_pax_tar_tool" = "gtar"; then
+ ax_pax_tar_create="'$ac_cv_path_GTAR' cf"
+ elif test "$ac_cv_pax_tar_tool" = "pax"; then
+ ax_pax_tar_create="'$ac_cv_path_PAX' -w $ax_pax_single_archive -f"
+ elif test "$ac_cv_pax_tar_tool" = "tar"; then
+ ax_pax_tar_create="'$ac_cv_path_TAR' cf"
+ else
+ ax_pax_tar_create=": 'unknown pax tar tool $ac_cv_pax_tar_tool'"
+ fi
+ AC_MSG_RESULT([$ax_pax_tar_create])
+])
+
+AC_DEFUN([_AX_PAX_TAR_EXTRACT],[
+ _AX_PAX_TAR_TOOL
+ _AX_PAX_SINGLE_ARCHIVE
+ AC_MSG_CHECKING([for command to extract portable tar archives])
+ if test "$ac_cv_pax_tar_tool" = "gnutar"; then
+ ax_pax_tar_extract="'$ac_cv_path_GNUTAR' xf"
+ elif test "$ac_cv_pax_tar_tool" = "gtar"; then
+ ax_pax_tar_extract="'$ac_cv_path_GTAR' xf"
+ elif test "$ac_cv_pax_tar_tool" = "pax"; then
+ ax_pax_tar_extract="'$ac_cv_path_PAX' -r $ax_pax_single_archive -f"
+ elif test "$ac_cv_pax_tar_tool" = "tar"; then
+ ax_pax_tar_extract="'$ac_cv_path_TAR' xf"
+ else
+ ax_pax_tar_extract=": 'unknown pax tar tool $ac_cv_pax_tar_tool'"
+ fi
+ AC_MSG_RESULT([$ax_pax_tar_extract])
+])
+
+AC_DEFUN([AX_PAX_TAR_CREATE],[dnl
+_AX_PAX_TAR_CREATE
+m4_ifval([$1],[dnl
+$1="$ax_pax_tar_create"
+AC_SUBST([$1])
+],[dnl
+PAX_TAR_CREATE="$ax_pax_tar_create"
+AC_SUBST([PAX_TAR_CREATE])
+])
+])
+
+AC_DEFUN([AX_PAX_TAR_EXTRACT],[dnl
+_AX_PAX_TAR_EXTRACT
+m4_ifval([$1],[dnl
+$1="$ax_pax_tar_extract"
+AC_SUBST([$1])
+],[dnl
+PAX_TAR_EXTRACT="$ax_pax_tar_extract"
+AC_SUBST([PAX_TAR_EXTRACT])
+])
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_prefix_config_h.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_prefix_config_h.m4
new file mode 100644
index 00000000000..70dee8fb4ec
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_prefix_config_h.m4
@@ -0,0 +1,183 @@
+dnl @synopsis AX_PREFIX_CONFIG_H [(OUTPUT-HEADER [,PREFIX [,ORIG-HEADER]])]
+dnl
+dnl This is a new variant from ac_prefix_config_ this one will use a
+dnl lowercase-prefix if the config-define was starting with a
+dnl lowercase-char, e.g. "#define const", "#define restrict", or
+dnl "#define off_t", (and this one can live in another directory, e.g.
+dnl testpkg/config.h therefore I decided to move the output-header to
+dnl be the first arg)
+dnl
+dnl takes the usual config.h generated header file; looks for each of
+dnl the generated "#define SOMEDEF" lines, and prefixes the defined
+dnl name (ie. makes it "#define PREFIX_SOMEDEF". The result is written
+dnl to the output config.header file. The PREFIX is converted to
+dnl uppercase for the conversions.
+dnl
+dnl Defaults:
+dnl
+dnl OUTPUT-HEADER = $PACKAGE-config.h
+dnl PREFIX = $PACKAGE
+dnl ORIG-HEADER, from AM_CONFIG_HEADER(config.h)
+dnl
+dnl Your configure.ac script should contain both macros in this order,
+dnl and unlike the earlier variations of this prefix-macro it is okay
+dnl to place the AX_PREFIX_CONFIG_H call before the AC_OUTPUT
+dnl invokation.
+dnl
+dnl Example:
+dnl
+dnl AC_INIT(config.h.in) # config.h.in as created by "autoheader"
+dnl AM_INIT_AUTOMAKE(testpkg, 0.1.1) # makes #undef VERSION and PACKAGE
+dnl AM_CONFIG_HEADER(config.h) # prep config.h from config.h.in
+dnl AX_PREFIX_CONFIG_H(mylib/_config.h) # prep mylib/_config.h from it..
+dnl AC_MEMORY_H # makes "#undef NEED_MEMORY_H"
+dnl AC_C_CONST_H # makes "#undef const"
+dnl AC_OUTPUT(Makefile) # creates the "config.h" now
+dnl # and also mylib/_config.h
+dnl
+dnl if the argument to AX_PREFIX_CONFIG_H would have been omitted then
+dnl the default outputfile would have been called simply
+dnl "testpkg-config.h", but even under the name "mylib/_config.h" it
+dnl contains prefix-defines like
+dnl
+dnl #ifndef TESTPKG_VERSION
+dnl #define TESTPKG_VERSION "0.1.1"
+dnl #endif
+dnl #ifndef TESTPKG_NEED_MEMORY_H
+dnl #define TESTPKG_NEED_MEMORY_H 1
+dnl #endif
+dnl #ifndef _testpkg_const
+dnl #define _testpkg_const _const
+dnl #endif
+dnl
+dnl and this "mylib/_config.h" can be installed along with other
+dnl header-files, which is most convenient when creating a shared
+dnl library (that has some headers) where some functionality is
+dnl dependent on the OS-features detected at compile-time. No need to
+dnl invent some "mylib-confdefs.h.in" manually. :-)
+dnl
+dnl Note that some AC_DEFINEs that end up in the config.h file are
+dnl actually self-referential - e.g. AC_C_INLINE, AC_C_CONST, and the
+dnl AC_TYPE_OFF_T say that they "will define inline|const|off_t if the
+dnl system does not do it by itself". You might want to clean up about
+dnl these - consider an extra mylib/conf.h that reads something like:
+dnl
+dnl #include <mylib/_config.h>
+dnl #ifndef _testpkg_const
+dnl #define _testpkg_const const
+dnl #endif
+dnl
+dnl and then start using _testpkg_const in the header files. That is
+dnl also a good thing to differentiate whether some library-user has
+dnl starting to take up with a different compiler, so perhaps it could
+dnl read something like this:
+dnl
+dnl #ifdef _MSC_VER
+dnl #include <mylib/_msvc.h>
+dnl #else
+dnl #include <mylib/_config.h>
+dnl #endif
+dnl #ifndef _testpkg_const
+dnl #define _testpkg_const const
+dnl #endif
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2003-07-03
+dnl @license GPLWithACException
+AC_DEFUN([AX_PREFIX_CONFIG_H],[dnl
+AC_PROVIDE_IFELSE([AC_CONFIG_HEADERS], dnl
+ ,[warning if no AC_CONFIG_HEADERS precedes $ ])dnl
+AC_CONFIG_COMMANDS([ifelse($1,,$PACKAGE-config.h,$1)],[dnl
+AS_VAR_PUSHDEF([_OUT],[ac_prefix_conf_OUT])dnl
+AS_VAR_PUSHDEF([_DEF],[ac_prefix_conf_DEF])dnl
+AS_VAR_PUSHDEF([_PKG],[ac_prefix_conf_PKG])dnl
+AS_VAR_PUSHDEF([_LOW],[ac_prefix_conf_LOW])dnl
+AS_VAR_PUSHDEF([_UPP],[ac_prefix_conf_UPP])dnl
+AS_VAR_PUSHDEF([_INP],[ac_prefix_conf_INP])dnl
+m4_pushdef([_script],[conftest.prefix])dnl
+m4_pushdef([_symbol],[m4_cr_Letters[]m4_cr_digits[]_])dnl
+_OUT=`echo ifelse($1, , $PACKAGE-config.h, $1)`
+_DEF=`echo _$_OUT | sed -e "y:m4_cr_letters:m4_cr_LETTERS[]:" -e "s/@<:@^m4_cr_Letters@:>@/_/g"`
+_PKG=`echo ifelse($2, , $PACKAGE, $2)`
+_LOW=`echo _$_PKG | sed -e "y:m4_cr_LETTERS-:m4_cr_letters[]_:"`
+_UPP=`echo $_PKG | sed -e "y:m4_cr_letters-:m4_cr_LETTERS[]_:" -e "/^@<:@m4_cr_digits@:>@/s/^/_/"`
+_INP=`echo "ifelse($3,,,$3)" | sed -e 's/ *//'`
+if test ".$_INP" = "."; then
+ for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue
+ case "$ac_file" in
+ *.h) _INP=$ac_file ;;
+ *)
+ esac
+ test ".$_INP" != "." && break
+ done
+fi
+if test ".$_INP" = "."; then
+ case "$_OUT" in
+ */*) _INP=`basename "$_OUT"`
+ ;;
+ *-*) _INP=`echo "$_OUT" | sed -e "s/@<:@_symbol@:>@*-//"`
+ ;;
+ *) _INP=config.h
+ ;;
+ esac
+fi
+if test -z "$_PKG" ; then
+ AC_MSG_ERROR([no prefix for _PREFIX_PKG_CONFIG_H])
+else
+ if test ! -f "$_INP" ; then if test -f "$srcdir/$_INP" ; then
+ _INP="$srcdir/$_INP"
+ fi fi
+ AC_MSG_NOTICE(creating $_OUT - prefix $_UPP for $_INP defines)
+ if test -f $_INP ; then
+ echo "s/^@%:@undef *\\(@<:@m4_cr_LETTERS[]_@:>@\\)/@%:@undef $_UPP""_\\1/" > _script
+ echo "s/^@%:@undef *\\(@<:@m4_cr_letters@:>@\\)/@%:@undef $_LOW""_\\1/" >> _script
+ echo "s/^@%:@def[]ine *\\(@<:@m4_cr_LETTERS[]_@:>@@<:@_symbol@:>@*\\)\\(.*\\)/@%:@ifndef $_UPP""_\\1 \\" >> _script
+ echo "@%:@def[]ine $_UPP""_\\1 \\2 \\" >> _script
+ echo "@%:@endif/" >>_script
+ echo "s/^@%:@def[]ine *\\(@<:@m4_cr_letters@:>@@<:@_symbol@:>@*\\)\\(.*\\)/@%:@ifndef $_LOW""_\\1 \\" >> _script
+ echo "@%:@define $_LOW""_\\1 \\2 \\" >> _script
+ echo "@%:@endif/" >> _script
+ # now executing _script on _DEF input to create _OUT output file
+ echo "@%:@ifndef $_DEF" >$tmp/pconfig.h
+ echo "@%:@def[]ine $_DEF 1" >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo /'*' $_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h
+
+ sed -f _script $_INP >>$tmp/pconfig.h
+ echo ' ' >>$tmp/pconfig.h
+ echo '/* once:' $_DEF '*/' >>$tmp/pconfig.h
+ echo "@%:@endif" >>$tmp/pconfig.h
+ if cmp -s $_OUT $tmp/pconfig.h 2>/dev/null; then
+ AC_MSG_NOTICE([$_OUT is unchanged])
+ else
+ ac_dir=`AS_DIRNAME(["$_OUT"])`
+ AS_MKDIR_P(["$ac_dir"])
+ rm -f "$_OUT"
+ mv $tmp/pconfig.h "$_OUT"
+ fi
+ cp _script _configs.sed
+ else
+ AC_MSG_ERROR([input file $_INP does not exist - skip generating $_OUT])
+ fi
+ rm -f conftest.*
+fi
+m4_popdef([_symbol])dnl
+m4_popdef([_script])dnl
+AS_VAR_POPDEF([_INP])dnl
+AS_VAR_POPDEF([_UPP])dnl
+AS_VAR_POPDEF([_LOW])dnl
+AS_VAR_POPDEF([_PKG])dnl
+AS_VAR_POPDEF([_DEF])dnl
+AS_VAR_POPDEF([_OUT])dnl
+],[PACKAGE="$PACKAGE"])])
+
+dnl implementation note: a bug report (31.5.2005) from Marten Svantesson points
+dnl out a problem where `echo "\1"` results in a Control-A. The unix standard
+dnl http://www.opengroup.org/onlinepubs/000095399/utilities/echo.html
+dnl defines all backslash-sequences to be inherently non-portable asking
+dnl for replacement mit printf. Some old systems had problems with that
+dnl one either. However, the latest libtool (!) release does export an $ECHO
+dnl (and $echo) that does the right thing - just one question is left: what
+dnl was the first version to have it? Is it greater 2.58 ?
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_set_version_info.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_set_version_info.m4
new file mode 100644
index 00000000000..20fded0f09a
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_set_version_info.m4
@@ -0,0 +1,180 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_set_version_info.m4
+dnl @synopsis AX_SET_VERSION_INFO [(VERSION [,PREFIX])]
+dnl @synopsis default $1 = $PACKAGE_VERSION
+dnl @synopsis default $2 = <none>
+dnl
+dnl This macro is the successor of AC_SET_RELEASEINFO_VERSIONINFO but
+dnl it can be used in parallel because it uses all different variables.
+dnl
+dnl check the $VERSION number and cut the two last digit-sequences off
+dnl which will form a -version-info in a @VERSION_INFO@ ac_subst while
+dnl the rest is going to the -release name in a @RELEASE_INFO@
+dnl ac_subst.
+dnl
+dnl you should keep these two separate - the release-name may contain
+dnl alpha-characters and can be modified later with extra release-hints
+dnl e.g. RELEASE_INFO="$RELEASE_INFO-debug" for a debug version of your
+dnl lib. The $VERSION_INFO however should not be touched.
+dnl
+dnl example: a VERSION="2.4.18" will be transformed into
+dnl
+dnl RELEASE_INFO = -release 2
+dnl VERSION_INFO = -versioninfo 4:18
+dnl
+dnl then use these two variables and push them to your libtool linker
+dnl
+dnl libtest_la_LIBADD = @RELEASE_INFO@ @VERSION_INFO@
+dnl
+dnl and for a linux-target this will tell libtool to install the lib as
+dnl
+dnl libmy.so libmy.la libmy.a libmy-2.so.4 libmy-2.so.4.0.18
+dnl
+dnl and executables will get link-resolve-infos for libmy-2.so.4 -
+dnl therefore the patch-level is ignored during ldso linking, and ldso
+dnl will use the one with the highest patchlevel. Using just "-release
+dnl $(VERSION)" during libtool-linking would not do that - omitting the
+dnl -version-info will libtool install libmy.so libmy.la libmy.a
+dnl libmy-2.4.18.so and executables would get hardlinked with the
+dnl 2.4.18 version of your lib.
+dnl
+dnl This background does also explain the default dll name for a win32
+dnl target : libtool will choose to make up libmy-2-4.dll for this
+dnl version spec.
+dnl
+dnl this macro does also set the usual three parts of a version spec
+dnl $MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION but does not ac_subst
+dnl for the plain AX_SET_VERSION_INFO macro. Use instead one of the
+dnl numbered macros AX_SET_VERSION_INFO1 (use first number for release
+dnl part) or that AX_SET_VERSION_INFO2 (use the first two numbers for
+dnl release part).
+dnl
+dnl You may add sublevel parts like "1.4.2-ac5" where the sublevel is
+dnl just killed from these version/release substvars. That allows to
+dnl grab the version off a .spec file like with AX_SPEC_PACKAGE_VERSION
+dnl where the $VERSION is used to name a tarball or distpack like
+dnl mylib-2.2.9pre4
+dnl
+dnl Unlike earlier macros, you can use this one to break up different
+dnl VERSIONs and put them into different variables, just hint with
+dnl PREFIX-setting - i.e. _VERSION(2.4.5,TEST) will set variables named
+dnl TEST_MAJOR_VERSION=2... and of course $TEST_RELEASE_INFO etc. (for
+dnl the moment, it needs to be a literal prefix *sigh*)
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2005-01-21
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_SET_VERSION_INFO1],[dnl
+AS_VAR_PUSHDEF([MAJOR],ifelse($2,,[MAJOR_VERSION],[$2_MAJOR_VERSION]))dnl
+AS_VAR_PUSHDEF([MINOR],ifelse($2,,[MINOR_VERSION],[$2_MINOR_VERSION]))dnl
+AS_VAR_PUSHDEF([MICRO],ifelse($2,,[MICRO_VERSION],[$2_MICRO_VERSION]))dnl
+AS_VAR_PUSHDEF([PATCH],ifelse($2,,[PATCH_VERSION],[$2_PATCH_VERSION]))dnl
+AS_VAR_PUSHDEF([LTREL],ifelse($2,,[RELEASE_INFO],[$2_RELEASE_INFO]))dnl
+AS_VAR_PUSHDEF([LTVER],ifelse($2,,[VERSION_INFO],[$2_VERSION_INFO]))dnl
+test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION="$VERSION"
+AC_MSG_CHECKING(ifelse($2,,,[$2 ])out linker version info dnl
+ifelse($1,,$PACKAGE_VERSION,$1) )
+ MINOR=`echo ifelse( $1, , $PACKAGE_VERSION, $1 )`
+ MAJOR=`echo "$MINOR" | sed -e 's/[[.]].*//'`
+ MINOR=`echo "$MINOR" | sed -e "s/^$MAJOR//" -e 's/^.//'`
+ MICRO="$MINOR"
+ MINOR=`echo "$MICRO" | sed -e 's/[[.]].*//'`
+ MICRO=`echo "$MICRO" | sed -e "s/^$MINOR//" -e 's/^.//'`
+ PATCH="$MICRO"
+ MICRO=`echo "$PATCH" | sed -e 's/[[^0-9]].*//'`
+ PATCH=`echo "$PATCH" | sed -e "s/^$MICRO//" -e 's/^[[-.]]//'`
+ if test "_$MICRO" = "_" ; then MICRO="0" ; fi
+ if test "_$MINOR" = "_" ; then MINOR="$MAJOR" ; MAJOR="0" ; fi
+ MINOR=`echo "$MINOR" | sed -e 's/[[^0-9]].*//'`
+ LTREL="-release $MAJOR"
+ LTVER="-version-info $MINOR:$MICRO"
+AC_MSG_RESULT([/$MAJOR/$MINOR:$MICRO (-$MAJOR.so.$MINOR.0.$MICRO)])
+AC_SUBST(MAJOR)
+AC_SUBST(MINOR)
+AC_SUBST(MICRO)
+AC_SUBST(PATCH)
+AC_SUBST(LTREL)
+AC_SUBST(LTVER)
+AS_VAR_POPDEF([LTVER])dnl
+AS_VAR_POPDEF([LTREL])dnl
+AS_VAR_POPDEF([PATCH])dnl
+AS_VAR_POPDEF([MICRO])dnl
+AS_VAR_POPDEF([MINOR])dnl
+AS_VAR_POPDEF([MAJOR])dnl
+])
+
+AC_DEFUN([AX_SET_VERSION_INFO2],[dnl
+AS_VAR_PUSHDEF([MAJOR],ifelse($2,,[MAJOR_VERSION],[$2_MAJOR_VERSION]))dnl
+AS_VAR_PUSHDEF([MINOR],ifelse($2,,[MINOR_VERSION],[$2_MINOR_VERSION]))dnl
+AS_VAR_PUSHDEF([MICRO],ifelse($2,,[MICRO_VERSION],[$2_MICRO_VERSION]))dnl
+AS_VAR_PUSHDEF([PATCH],ifelse($2,,[PATCH_VERSION],[$2_PATCH_VERSION]))dnl
+AS_VAR_PUSHDEF([LTREL],ifelse($2,,[RELEASE_INFO],[$2_RELEASE_INFO]))dnl
+AS_VAR_PUSHDEF([LTVER],ifelse($2,,[VERSION_INFO],[$2_VERSION_INFO]))dnl
+test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION="$VERSION"
+AC_MSG_CHECKING(ifelse($2,,,[$2 ])out linker version info dnl
+ifelse($1,,$PACKAGE_VERSION,$1) )
+ MINOR=`echo ifelse( $1, , $PACKAGE_VERSION, $1 )`
+ MAJOR=`echo "$MINOR" | sed -e 's/[[.]].*//'`
+ MINOR=`echo "$MINOR" | sed -e "s/^$MAJOR//" -e 's/^.//'`
+ MICRO="$MINOR"
+ MINOR=`echo "$MICRO" | sed -e 's/[[.]].*//'`
+ MICRO=`echo "$MICRO" | sed -e "s/^$MINOR//" -e 's/^.//'`
+ PATCH="$MICRO"
+ MICRO=`echo "$PATCH" | sed -e 's/[[^0-9]].*//'`
+ PATCH=`echo "$PATCH" | sed -e "s/^$MICRO//" -e 's/^[[-.]]//'`
+ test "_$MICRO" != "_" || MICRO="0"
+ if test "_$MINOR" != "_" ; then MINOR="$MAJOR" ; MAJOR="0" ; fi
+ MINOR=`echo "$MINOR" | sed -e 's/[[^0-9]].*//'`
+ LTREL="-release $MAJOR.$MINOR"
+ LTVER="-version-info 0:$MICRO"
+AC_MSG_RESULT([/$MAJOR/$MINOR:$MICRO (-$MAJOR.so.$MINOR.0.$MICRO)])
+AC_SUBST(MAJOR)
+AC_SUBST(MINOR)
+AC_SUBST(MICRO)
+AC_SUBST(PATCH)
+AC_SUBST(LTREL)
+AC_SUBST(LTVER)
+AS_VAR_POPDEF([LTVER])dnl
+AS_VAR_POPDEF([LTREL])dnl
+AS_VAR_POPDEF([PATCH])dnl
+AS_VAR_POPDEF([MICRO])dnl
+AS_VAR_POPDEF([MINOR])dnl
+AS_VAR_POPDEF([MAJOR])dnl
+])
+
+AC_DEFUN([AX_SET_VERSION_INFO],[dnl
+AS_VAR_PUSHDEF([MAJOR],ifelse($2,,[MAJOR_VERSION],[$2_MAJOR_VERSION]))dnl
+AS_VAR_PUSHDEF([MINOR],ifelse($2,,[MINOR_VERSION],[$2_MINOR_VERSION]))dnl
+AS_VAR_PUSHDEF([MICRO],ifelse($2,,[MICRO_VERSION],[$2_MICRO_VERSION]))dnl
+AS_VAR_PUSHDEF([PATCH],ifelse($2,,[PATCH_VERSION],[$2_PATCH_VERSION]))dnl
+AS_VAR_PUSHDEF([LTREL],ifelse($2,,[RELEASE_INFO],[$2_RELEASE_INFO]))dnl
+AS_VAR_PUSHDEF([LTVER],ifelse($2,,[VERSION_INFO],[$2_VERSION_INFO]))dnl
+test ".$PACKAGE_VERSION" = "." && PACKAGE_VERSION="$VERSION"
+AC_MSG_CHECKING(ifelse($2,,,[$2 ])out linker version info dnl
+ifelse($1,,$PACKAGE_VERSION,$1) )
+ MINOR=`echo ifelse( $1, , $PACKAGE_VERSION, $1 )`
+ MAJOR=`echo "$MINOR" | sed -e 's/[[.]].*//'`
+ MINOR=`echo "$MINOR" | sed -e "s/^$MAJOR//" -e 's/^.//'`
+ MICRO="$MINOR"
+ MINOR=`echo "$MICRO" | sed -e 's/[[.]].*//'`
+ MICRO=`echo "$MICRO" | sed -e "s/^$MINOR//" -e 's/^.//'`
+ PATCH="$MICRO"
+ MICRO=`echo "$PATCH" | sed -e 's/[[^0-9]].*//'`
+ PATCH=`echo "$PATCH" | sed -e "s/^$MICRO//" -e 's/[[-.]]//'`
+ if test "_$MICRO" = "_" ; then MICRO="0" ; fi
+ if test "_$MINOR" = "_" ; then MINOR="$MAJOR" ; MAJOR="0" ; fi
+ MINOR=`echo "$MINOR" | sed -e 's/[[^0-9]].*//'`
+ LTREL="-release $MAJOR"
+ LTVER="-version-info $MINOR:$MICRO"
+AC_MSG_RESULT([/$MAJOR/$MINOR:$MICRO (-$MAJOR.so.$MINOR.0.$MICRO)])
+AC_SUBST(LTREL)
+AC_SUBST(LTVER)
+AS_VAR_POPDEF([LTVER])dnl
+AS_VAR_POPDEF([LTREL])dnl
+AS_VAR_POPDEF([PATCH])dnl
+AS_VAR_POPDEF([MICRO])dnl
+AS_VAR_POPDEF([MINOR])dnl
+AS_VAR_POPDEF([MAJOR])dnl
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_spec_file.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_spec_file.m4
new file mode 100644
index 00000000000..c80a75a4e04
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_spec_file.m4
@@ -0,0 +1,100 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_spec_file.m4
+dnl @synopsis AX_SPEC_FILE [(rpmspecfile [,subdirpath])]
+dnl
+dnl set the specfile - if no argument has been given then check whether
+dnl the ac_unique_file looks like a .spec file and use it. This macro
+dnl is ac_REQUIRED by many AX_SPEC_ routines.
+dnl
+dnl the AX_SPEC_EXTRACT macro is a helper used by many AX_SPEC_
+dnl routines and therefore placed here to be automatically included in
+dnl the macro set of (older) aclocal/acinclude.
+dnl
+dnl AX_SPEC_EXTRACT(shellvar [,specvar [,defaultvalue]])
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2005-01-21
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_SPEC_FILE],
+[ AC_MSG_CHECKING([rpm spec file])
+ if test ".$1" != "." ; then
+ ax_spec_file_="$1"
+ ax_spec_file=`basename $1`
+ else
+ case ".$ac_unique_file" in
+ *.spec) ax_spec_file="$ac_unique_file"
+ ax_spec_file_="$ac_unique_file" ;;
+ *) ax_spec_file="TODO"
+ if test ".$PACKAGE" != "."
+ then ax_spec_file_="$PACKAGE.spec"
+ else ax_spec_file_="README"
+ fi
+ cat m4_ifset([AS_MESSAGE_LOG_FD],[>&AS_MESSAGE_LOG_FD],[>>config.log]) <<EOF
+ no ax_spec_file argument has been given, using defaults of
+ (1) $ax_spec_file_
+ (2) $ax_spec_file
+EOF
+ ;;
+ esac
+ fi
+ # find specfile
+ for i in ifelse($2,,,$2) . $srcdir $srcdir/.. .. ; do
+ if test -f "$i/$ax_spec_file_" ; then
+ ax_spec_dir="$i"
+ ax_spec_file="$ax_spec_dir/$ax_spec_file_"
+ break
+ fi
+ if test -f "$i/$ax_spec_file" ; then
+ ax_spec_dir="$i"
+ ax_spec_file="$ax_spec_dir/$ax_spec_file"
+ break
+ fi
+ done
+ case "$ax_spec_file" in
+ ./*) if test "$ax_spec_file" = "./$ax_spec_file_" ; then
+ ax_spec_file="$ax_spec_file_"
+ fi
+ AC_MSG_RESULT([$ax_spec_file]) ;;
+ */*) AC_MSG_RESULT([$ax_spec_file]) ;;
+ *) AC_MSG_ERROR([no rpm spec file found]) ;;
+ esac
+ m4_define([m4_ax_spec_file],[ax_spec_file])
+])
+
+dnl AX_SPEC_EXTRACT(shellvar [,specvar [,defaultvalue]])
+
+AC_DEFUN([AX_SPEC_EXTRACT],
+[
+ if test ".$[]$1" = "." ; then
+ $1=`grep -i '^[[ ]]*m4_ifval([$2],[$2],[$1])[[ ]]*:' dnl
+ "$ax_spec_file" | sed -e 's/.*:[[ ]]*//' dnl
+ -e 's/[[ ]][[ ]]*/ /g' -e 's/^ //' -e 's/ $[]//' -e 'q'`
+ if test ".$[]$1" = "." ; then
+ for $1 in $2 $1 m4_tolower([$1]) ; do
+ $1=`echo "$[]$1" | sed -e 's/^%//g'`
+ $1=`sed dnl
+ -e "/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]/!d" dnl
+ -e "s/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]*//" dnl
+ -e 's/[[ ]][[ ]]*/ /' -e 's/ $[]//' -e 'q' $ax_spec_file`
+ test ".$1" != "." && break
+ done
+ fi
+ case ".$[]$1" in
+ .%{*)
+ $1=`echo "$[]$1" | sed -e 's/%{//' -e 's/}$[]//'`
+ $1=`sed dnl
+ -e "/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]/!d" dnl
+ -e "s/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]*//" dnl
+ -e 's/[[ ]][[ ]]*/ /' -e 's/ $[]//' -e 'q' $ax_spec_file` ;;
+ .%*)
+ $1=`echo "$[]$1" | sed -e 's/%//'`
+ $1=`sed dnl
+ -e "/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]/!d" dnl
+ -e "s/^%[[ ]]*def[]ine[[ ]][[ ]]*$[]$1[[ ]]*//" dnl
+ -e 's/[[ ]][[ ]]*/ /' -e 's/ $[]//' -e 'q' $ax_spec_file` ;;
+ esac
+ m4_ifval([$3],[test ".$[]$1" = "." && $1="$3"])
+ fi # test ".$[]$1" = "."
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_spec_package_version.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_spec_package_version.m4
new file mode 100644
index 00000000000..f13b247bacf
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_spec_package_version.m4
@@ -0,0 +1,229 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_spec_package_version.m4
+dnl @synopsis AX_SPEC_PACKAGE_AND_VERSION ([specfile])
+dnl @synopsis AX_SPEC_PACKAGE_NAME ([shellvar],[defaultvalue])
+dnl @synopsis AX_SPEC_PACKAGE_VERSION ([shellvar],[defaultvalue])
+dnl @synopsis AX_SPEC_PACKAGE_SUMMARY ([shellvar],[defaultvalue])
+dnl @synopsis AX_SPEC_PACKAGE_LICENSE ([shellvar],[defaultvalue])
+dnl @synopsis AX_SPEC_PACKAGE_CATEGORY ([shellvar],[defaultvalue])
+dnl @synopsis AX_SPEC_PACKAGE_ICON ([shellvar],[defaultvalue])
+dnl @synopsis AX_SPEC_DEFAULTS([specfile])
+dnl
+dnl set PACKAGE from the given specfile - default to basename of the
+dnl rpmspecfile if no "name:" could be found in the spec file.
+dnl
+dnl set VERSION from the given specfile - default to a date-derived
+dnl value if no "version:" could be found in the spec file.
+dnl
+dnl this macro builds on top of AX_SPEC_FILE / AX_SPEC_EXTRACT
+dnl
+dnl more specific: if not "name:" or "%define name" was found in the
+dnl myproject.spec file then the PACKAGE var is set to the basename
+dnl "myproject". When no spec file was present then it will usually
+dnl default to "TODO".
+dnl
+dnl The version spec looks for "version:" or "%define version" in the
+dnl spec file. When no such value was seen or no spec file had been
+dnl present then the value is set to `date +0.%y.%W%w`.
+dnl
+dnl the version value itself is sanitized somewhat with making it to
+dnl always carry atleast three digits (1.2.3) and clensing superflous
+dnl "0" chars around from generating numbers elsewhere.
+dnl
+dnl additional macros are provided that extract a specific value from
+dnl the spec file, among these:
+dnl
+dnl set PACKAGE_SUMMARY from the given specfile - default to package
+dnl and try to detect a type suffix if "summary:" was not in the spec
+dnl file
+dnl
+dnl set PACKAGE_LICENSE from the given specfile - if no "license:" tag
+dnl was given in the spec file then various COPYING files are grepped
+dnl to have a guess and the final fallback will be GNU GPL (or GNU
+dnl LGPL).
+dnl
+dnl set PACKAGE_ICON from the given specfile - if no "icon:" tag was
+dnl given in the spec file then we default to $PACKAGE-icon.png
+dnl
+dnl the final AX_SPEC_INIT(specfile) will initialize all variables to
+dnl its defaults according to the spec file given.
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2005-01-21
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_SPEC_PACKAGE_LICENSE],[AC_REQUIRE([AX_SPEC_FILE])dnl
+ AS_VAR_PUSHDEF([VAR],[PACKAGE_LICENSE])dnl
+ AC_MSG_CHECKING([for spec license type])
+ if test ".$VAR" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+ AX_SPEC_EXTRACT(VAR,[license],m4_ifval($1,$1))
+ VAR=`echo $VAR | sed -e 's/ *License//g'`
+ fi fi
+ test ".$VAR" = "." && k="(fallback)"
+ ifelse($2,,[dnl here the defaults for LICENSE / COPYRIGHT
+ if test ".$VAR" = "." ; then
+ for ac_file in "$srcdir/COPYING" "$srcdir/COPYING" "$srcdir/LICENSE" ; do
+ test -f "$ac_file" || continue
+dnl http://www.ibiblio.org/osrt/omf/omf_elements "16. Rights"
+ if grep "GNU LESSER GENERAL PUBLIC LICENSE" "$ac_file" >/dev/null
+ then VAR="GNU LGPL" ; break
+ elif grep "GNU GENERAL PUBLIC LICENSE" "$ac_file" >/dev/null
+ then VAR="GNU GPL" ; break
+ elif grep "MOZILLA PUBLIC LICENSE" "$ac_file" >/dev/null
+ then VAR="MPL" ; break
+ elif grep "Mozilla Public License" "$ac_file" >/dev/null
+ then VAR="MPL" ; break
+ elif grep -i "artistic license" "$ac_file" >/dev/null
+ then VAR="Artistic" ; break
+ elif grep -i "artistic control" "$ac_file" >/dev/null
+ then VAR="Artistic" ; break
+ elif grep -i "semblance of artistic" "$ac_file" >/dev/null
+ then VAR="Artistic" ; break
+ elif grep -i "above copyright notice" "$ac_file" >/dev/null
+ then VAR="BSD" ; break
+ fi
+ done
+ if test ".$VAR" = "." ; then
+ if test "$srcdir/COPYING.LIB" ; then VAR="GNU LGPL"
+ elif test ".$ltmain" != "." ; then VAR="GNU LGPL"
+ else VAR="GNU GPL"
+ fi
+ fi
+ fi
+ ],[test ".$VAR" = "." && VAR="$2"])
+ test "$VAR" = "GPL" && VAR="GNU GPL"
+ test "$VAR" = "LGPL" && VAR="GNU LGPL"
+ AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k])
+ AS_VAR_POPDEF([VAR])dnl
+])
+
+AC_DEFUN([AX_SPEC_PACKAGE_SUMMARY],[AC_REQUIRE([AX_SPEC_FILE])dnl
+ AS_VAR_PUSHDEF([VAR],[PACKAGE_SUMMARY])dnl
+ AC_MSG_CHECKING([for spec summary])
+ if test ".$VAR" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+ AX_SPEC_EXTRACT(VAR,[summary],m4_ifval($1,$1))
+ fi fi
+ test ".$VAR" = "." && k="(fallback)"
+ ifelse($2,,[dnl here the defaults for SUMMARY
+ if test ".$VAR" = "." ; then VAR="$PACKAGE"
+ test ".$VAR" = "." && VAR="foo"
+ test ".$ltmain" != "." && VAR="$VAR library"
+ fi
+ ],[test ".$VAR" = "." && VAR="$2"])
+ AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k])
+ AS_VAR_POPDEF([VAR])dnl
+])
+
+AC_DEFUN([AX_SPEC_PACKAGE_ICON],[AC_REQUIRE([AX_SPEC_FILE])dnl
+ AS_VAR_PUSHDEF([VAR],[PACKAGE_ICON])dnl
+ AC_MSG_CHECKING([for spec icon])
+ if test ".$VAR" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+ AX_SPEC_EXTRACT(VAR,[icon],m4_ifval($1,$1))
+ fi fi
+ test ".$VAR" = "." && k="(fallback)"
+ ifelse($2,,[dnl here the defaults for ICON
+ if test ".$VAR" = "." ; then VAR="$PACKAGE-icon.png" ; fi
+ ],[test ".$VAR" = "." && VAR="$2"])
+ AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k])
+ AS_VAR_POPDEF([VAR])dnl
+])
+
+AC_DEFUN([AX_SPEC_PACKAGE_CATEGORY],[AC_REQUIRE([AX_SPEC_FILE])dnl
+ AS_VAR_PUSHDEF([VAR],[PACKAGE_CATEGORY])dnl
+ AC_MSG_CHECKING([for spec category])
+ if test ".$VAR" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+ AX_SPEC_EXTRACT(VAR,[group],m4_ifval($1,$1))
+ VAR=`echo $VAR | sed -e 's/ /-/g'`
+ fi fi
+ test ".$VAR" = "." && k="(fallback)"
+ ifelse($2,,[dnl here the defaults for CATEGORY
+ if test ".$VAR" = "." ; then if test ".$ltmain" != "."
+ then VAR="Development/Library"
+ else VAR="Development/Other"
+ fi fi
+ ],[test ".$VAR" = "." && VAR="$2"])
+ AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k])
+ AS_VAR_POPDEF([VAR])dnl
+])
+
+AC_DEFUN([AX_SPEC_PACKAGE_NAME],[AC_REQUIRE([AX_SPEC_FILE])dnl
+ AS_VAR_PUSHDEF([VAR],[PACKAGE_NAME])dnl
+ AC_MSG_CHECKING([for spec package])
+ if test ".$VAR" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+ AX_SPEC_EXTRACT(VAR,[name],m4_ifval($1,$1))
+ VAR=`echo $VAR | sed -e 's/ /-/g'`
+ fi fi
+ test ".$VAR" = "." && k="(fallback)"
+ ifelse($2,,[dnl here the defaults for PACKAGE
+ test ".$VAR" = "." && VAR=`basename $ax_spec_file .spec`
+ test ".$VAR" = ".README" && VAR="TODO"
+ test ".$VAR" = ".TODO" && VAR="foo"
+ ],[test ".$VAR" = "." && VAR="$2"])
+ test "VAR" = "PACKAGE_NAME" && test ".$PACKAGE" = "." && PACKAGE="$VAR"
+ AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k])
+ AS_VAR_POPDEF([VAR])dnl
+])
+
+AC_DEFUN([AX_SPEC_PACKAGE_VERSION_],[AC_REQUIRE([AX_SPEC_FILE])dnl
+ AS_VAR_PUSHDEF([VAR],[PACKAGE_VERSION])dnl
+ AC_MSG_CHECKING([for spec version])
+ if test ".$VAR" = "." ; then if test ! -f $ax_spec_file
+ then k="(w/o spec)"
+ else k=""
+ AX_SPEC_EXTRACT(VAR,[version],m4_ifval($1,$1))
+ VAR=`echo $VAR | sed -e 's/ /-/g'`
+ fi fi
+ test ".$VAR" = "." && k="(fallback)"
+ ifelse($2,,[dnl here the defaults for VERSION
+ test ".$VAR" = "." && VAR=`date +0.%y.%W%w`
+ ],[test ".$VAR" = "." && VAR="$2"])
+ test "VAR" = "PACKAGE_VERSION" && test ".$VERSION" = "." && VERSION="$VAR"
+ case "$VAR" in # note we set traditional VERSION before cleaning things up
+ *.*.) VAR="$VAR"`date +%W%w` ;;
+ *.*.*) ;;
+ *.) VAR="$VAR"`date +%y.%W%w` ;;
+ *.*) VAR="$VAR.0" ;;
+ *) VAR=AS_TR_SH([$VAR]) ; VAR="$VAR.`date +%y.%W%w`" ;;
+ esac
+ VAR=`echo $VAR | sed -e "s/[[.]][0]\\([0-9]\\)/.\\1/g"`
+ AC_MSG_RESULT([m4_ifval([$1],[$1 = ])$VAR $k])
+ AS_VAR_POPDEF([VAR])dnl
+])
+
+dnl for compatibility, we define ax_spec_package_version
+dnl to do all of ax_spec_package_name as well.
+AC_DEFUN([AX_SPEC_PACKAGE_VERSION],[AC_REQUIRE([AX_SPEC_FILE])dnl
+ ifelse($1,,
+ AC_MSG_WARN([please use ax_spec_package_AND_version now!]),
+ AC_MSG_ERROR([please use ax_spec_package_AND_version now!]))
+ AX_SPEC_PACKAGE_NAME
+ AX_SPEC_PACKAGE_VERSION_
+
+])
+
+AC_DEFUN([AX_SPEC_PACKAGE_AND_VERSION],[
+ m4_ifset([m4_ax_spec_file],,[AX_SPEC_FILE($1)])
+ AX_SPEC_PACKAGE_NAME
+ AX_SPEC_PACKAGE_VERSION_
+])
+
+AC_DEFUN([AX_SPEC_DEFAULTS],[
+ m4_ifset([m4_ax_spec_file],,[AX_SPEC_FILE($1)])
+ AX_SPEC_PACKAGE_NAME
+ AX_SPEC_PACKAGE_VERSION_
+ AX_SPEC_PACKAGE_LICENSE
+ AX_SPEC_PACKAGE_SUMMARY
+ AX_SPEC_PACKAGE_CATEGORY
+ AX_SPEC_PACKAGE_ICON
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_warning_default_aclocaldir.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_warning_default_aclocaldir.m4
new file mode 100644
index 00000000000..c4cb4aaa7e4
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_warning_default_aclocaldir.m4
@@ -0,0 +1,115 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_warning_default_aclocaldir.m4
+dnl @synopsis AX_WARNING_DEFAULT_ACLOCALDIR [(dirvariable [,[defsetting][,[A][,[N/A]]]])]
+dnl @synopsis AX_ENABLE_DEFAULT_ACLOCALDIR [(dirvariable [,defsetting])]
+dnl
+dnl print a warning message if the $(datadir)/aclocal directory is not
+dnl in the dirlist searched by the aclocal tool. This macro is useful
+dnl if some `make install` would target $(datadir)/aclocal to install
+dnl an autoconf m4 file of your project to be picked up by other
+dnl projects.
+dnl
+dnl default $1 dirvariable = aclocaldir
+dnl default $2 defsetting = ${datadir}/aclocal
+dnl default $3 action = nothing to do
+dnl default $4 action = warn the user about mismatch
+dnl
+dnl In the _WARNING_ variant, the defsetting is not placed in
+dnl dirvariable nor is it ac_subst'ed in any way. The default
+dnl fail-action $4 is to send a warning message to the user, and the
+dnl default accept-action $3 is nothing. It is expected that a Makefile
+dnl is generated with aclocaldir=${datadir}/aclocal
+dnl
+dnl The _ENABLE_ variant however will set not only the $aclocaldir
+dnl shell var of the script, but it is also AC-SUBST'ed on default -
+dnl and furthermore a configure option "--enable-default-aclocaldir" is
+dnl provided. Only if that option is set then $2 default is not set to
+dnl the canonic default in the a $prefix subpath but instead $2 default
+dnl is set to the primary path where `aclocal` looks for macros. The
+dnl user may also override the default on the command line.
+dnl
+dnl @category Misc
+dnl @category Automake
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2005-01-21
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_WARNING_DEFAULT_ACLOCALDIR],[dnl
+AC_REQUIRE([AX_EXPAND_PREFIX])dnl
+AS_VAR_PUSHDEF([DIR],[ax_warning_default_aclocal_dir])dnl
+AS_VAR_PUSHDEF([BIN],[ax_warning_default_aclocal_bin])dnl
+AS_VAR_PUSHDEF([LOC],[ax_warning_default_aclocal_loc])dnl
+LOC='m4_if([$2],,[${datadir}/aclocal],[$2])'
+m4_ifval([$1],[test ".$[]$1" != "." && LOC="$[]$1"])
+ if test ".$ACLOCAL" = "." ; then
+ AC_PATH_PROG([ACLOCAL],[aclocal],[:])
+ fi
+ BIN="$ACLOCAL"
+ test ".$BIN" = "." && BIN="aclocal"
+ DIR=`test ".$SHELL" = "." && SHELL="'sh'" ; eval "$BIN --print-ac-dir"`
+ test ".$DIR" = "." && test -d "/usr/share/aclocal" && DIR="/usr/share/aclocal"
+ test ".$DIR" = "." && DIR="/tmp"
+DIR=`eval "echo $DIR"` # we need to expand
+DIR=`eval "echo $DIR"`
+LOC=`eval "echo $LOC"`
+LOC=`eval "echo $LOC"`
+LOC=`eval "echo $LOC"`
+LOC=`eval "echo $LOC"`
+AC_RUN_LOG([: test "$LOC" = "$DIR"])
+if test "$LOC" != "$DIR" ; then
+ if test -f "$DIR/dirlist" ; then
+ for DIR in `cat $DIR/dirlist` $DIR ; do
+ AC_RUN_LOG([: test "$LOC" = "$DIR"])
+ test "$LOC" = "$DIR" && break
+ done
+ fi
+ if test "$LOC" != "$DIR" ; then
+ m4_ifval([$4],[$4],[dnl
+ AC_MSG_NOTICE([warning: m4_if([$1],,[aclocaldir],[$1])=$LOC dnl
+(see config.log)])
+ AC_MSG_NOTICE([perhaps: make install m4_if([$1],,[aclocaldir],[$1])=$DIR])
+ cat m4_ifset([AS_MESSAGE_LOG_FD],[>&AS_MESSAGE_LOG_FD],[>>config.log]) <<EOF
+ aclocaldir: the m4_if([$1],,[default aclocaldir],[$1 value]) of $LOC
+ aclocaldir: is not listed in the dirlist where aclocal will look
+ aclocaldir: for macros - you can override the install-path using
+ aclocaldir: make install aclocaldir=$DIR
+ aclocaldir: or append the directory to aclocal reconfigures later as
+ aclocaldir: aclocal -I $LOC
+ aclocaldir: when an autoconf macro is needed from that directory
+EOF
+ m4_ifvaln([$5],[$5])])dnl
+ m4_ifvaln([$3],[else $3])dnl
+ fi
+fi
+AS_VAR_POPDEF([LOC])dnl
+AS_VAR_POPDEF([BIN])dnl
+AS_VAR_POPDEF([DIR])dnl
+])
+
+AC_DEFUN([AX_ENABLE_DEFAULT_ACLOCALDIR],[dnl
+AS_VAR_PUSHDEF([BIN],[ax_warning_default_aclocal_bin])dnl
+AS_VAR_PUSHDEF([DIR],[ax_warning_default_aclocal_def])dnl
+AS_VAR_PUSHDEF([DEF],[ax_warning_default_aclocal_def])dnl
+AC_ARG_ENABLE([enable-default-aclocaldir],
+[ --enable-default-aclocaldir(=PATH) override the datadir/aclocal default])
+test ".$enable_default_aclocaldir" = "." && enable_default_aclocaldir="no"
+case ".$enable_default_aclocaldir" in
+ .no) DIR='m4_if([$2],,[${datadir}/aclocal],[$2])' ;;
+ .yes) # autodetect
+ if test ".$ACLOCAL" = "." ; then
+ AC_PATH_PROG([ACLOCAL],[aclocal],[:])
+ fi
+ BIN="$ACLOCAL"
+ test ".$BIN" = "." && BIN="aclocal"
+ DIR=`test ".$SHELL" = "." && SHELL="'sh'" ; eval "$BIN --print-ac-dir"`
+ test ".$DIR" = "." && test -d "/usr/share/aclocal" && DIR="/usr/share/aclocal"
+ test ".$DIR" = "." && DIR="/tmp" ;;
+ *) DIR="$enable_default_aclocaldir" ;;
+esac
+AX_WARNING_DEFAULT_ACLOCALDIR([$1],[$DEF],[$3],[$4],[$5])
+m4_if([$1],,[aclocaldir],[$1])="$ax_warning_default_aclocal_dir"
+AC_SUBST(m4_if([$1],,[aclocaldir],[$1]))
+AS_VAR_POPDEF([DEF])dnl
+AS_VAR_POPDEF([DIR])dnl
+AS_VAR_POPDEF([BIN])dnl
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ax_warning_default_pkgconfig.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ax_warning_default_pkgconfig.m4
new file mode 100644
index 00000000000..f5cdfb3c255
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ax_warning_default_pkgconfig.m4
@@ -0,0 +1,129 @@
+dnl /usr/share/aclocal/guidod-cvs/ax_warning_default_pkgconfig.m4
+dnl @synopsis AX_WARNING_DEFAULT_PKGCONFIGDIR [(dirvariable [,[defsetting][,[A][,[N/A]]]])]
+dnl @synopsis AX_ENABLE_DEFAULT_PKGCONFIGDIR [(dirvariable [,defsetting])]
+dnl
+dnl print a warning message if the $(datadir)/aclocal directory is not
+dnl in the dirlist searched by the aclocal tool. This macro is useful
+dnl if some `make install` would target $(datadir)/aclocal to install
+dnl an autoconf m4 file of your project to be picked up by other
+dnl projects.
+dnl
+dnl default $1 dirvariable = pkgconfigdir
+dnl default $2 defsetting = ${libdir}/pkgconfig
+dnl default $3 action = nothing to do
+dnl default $4 action = warn the user about mismatch
+dnl
+dnl In the _WARNING_ variant, the defsetting is not placed in
+dnl dirvariable nor is it ac_subst'ed in any way. The default
+dnl fail-action $4 is to send a warning message to the user, and the
+dnl default accept-action $3 is nothing. It is expected that a Makefile
+dnl is generated with pkgconfigdir=${libdir}/pkgconfig
+dnl
+dnl The _ENABLE_ variant however will set not only the $pkgconfigdir
+dnl shell var of the script, but it is also AC-SUBST'ed on default -
+dnl and furthermore a configure option "--enable-default-pkgconfigdir"
+dnl is provided. Only if that option is set then $2 default is not set
+dnl to the canonic default in the a $prefix subpath but instead $2
+dnl default is set to the primary path where `pkg-config` looks for .pc
+dnl files. The user may also override the default on the command line.
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2005-01-21
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_WARNING_DEFAULT_PKGCONFIGDIR],[dnl
+AC_REQUIRE([AX_EXPAND_PREFIX])dnl
+AS_VAR_PUSHDEF([DIR],[ax_warning_default_pkgconfig_dir])dnl
+AS_VAR_PUSHDEF([BIN],[ax_warning_default_pkgconfig_bin])dnl
+AS_VAR_PUSHDEF([LOC],[ax_warning_default_pkgconfig_loc])dnl
+LOC='m4_if([$2],,[${libdir}/pkgconfig],[$2])'
+m4_ifval([$1],[test ".$[]$1" != "." && LOC="$[]$1"])
+ if test ".$PKG_CONFIG" = "." ; then # we use the same default as in pkg.m4
+ AC_PATH_PROG([PKG_CONFIG],[pkg-config],[no])
+ fi
+ if test "$PKG_CONFIG" = "no"
+ then DIR="/" ; test -d "/usr/lib/pkgconfig" && DIR="/usr/lib/pkgconfig"
+ else BIN=`AS_DIRNAME(["$DIR"])` ;
+ if test -d "$BIN/lib/pkgconfig" ; then
+ DIR="$BIN/lib/pkgconfig"
+ else BIN=`AS_DIRNAME(["$DIR"])`
+ if test -d "$BIN/lib/pkgconfig" ; then
+ DIR="$BIN/lib/pkgconfig"
+ else
+ if test -d "/usr/lib/pkgconfig" ; then
+ DIR="/usr/lib/pkgconfig"
+ else
+ DIR="/"
+ fi fi fi
+ fi
+AC_RUN_LOG([: last pkgconfig dir is assumed as "$DIR"])
+DIR=`eval "echo $DIR"`
+DIR=`eval "echo $DIR"`
+LOC=`eval "echo $LOC"`
+LOC=`eval "echo $LOC"`
+LOC=`eval "echo $LOC"`
+LOC=`eval "echo $LOC"`
+for DIR in `echo "$PKG_CONFIG_PATH:$DIR" | sed -e 's,:, ,g'` ; do
+ AC_RUN_LOG([: test ".$LOC" = ".$DIR"])
+ test ".$LOC" = ".$DIR" && break
+done
+if test "$LOC" != "$DIR" ; then
+ m4_ifval([$4],[$4],[dnl
+ AC_MSG_NOTICE([warning: m4_if([$1],,[pkgconfigdir],[$1])=$LOC dnl
+(see config.log)])
+ AC_MSG_NOTICE([perhaps: make install m4_if([$1],,[pkgconfigdir],[$1])=$DIR])
+ cat m4_ifset([AS_MESSAGE_LOG_FD],[>&AS_MESSAGE_LOG_FD],[>>config.log]) <<EOF
+ pkgconfigdir: the m4_if([$1],,[default pkgconfigdir],[$1 value]) of $LOC
+ pkgconfigdir: is not listed in the dirlist where pkg-config will look for
+ pkgconfigdir: package-configs - you can override the install-path using
+ pkgconfigdir: make install m4_if([$1],,[pkgconfigdir],[$1])=$DIR
+ pkgconfigdir: or set/append the directory to the environment variable
+ pkgconfigdir: PKG_CONFIG_PATH="$LOC"
+EOF
+ m4_ifvaln([$5],[$5])])dnl
+ m4_ifvaln([$3],[else $3])dnl
+fi
+AS_VAR_POPDEF([LOC])dnl
+AS_VAR_POPDEF([BIN])dnl
+AS_VAR_POPDEF([DIR])dnl
+])
+
+AC_DEFUN([AX_ENABLE_DEFAULT_PKGCONFIGDIR],[dnl
+AS_VAR_PUSHDEF([BIN],[ax_warning_default_pkgconfig_bin])dnl
+AS_VAR_PUSHDEF([DIR],[ax_warning_default_pkgconfig_def])dnl
+AS_VAR_PUSHDEF([DEF],[ax_warning_default_pkgconfig_def])dnl
+AC_ARG_ENABLE([enable-default-pkgconfigdir],
+[ --enable-default-pkgconfigdir(=PATH) override the libdir/pkgconfig default])
+test ".$enable_default_pkgconfigdir" = "." && enable_default_pkgconfigdir="no"
+case ".$enable_default_pkgconfigdir" in
+ .no) DIR='m4_if([$2],,[${libdir}/pkgconfig],[$2])' ;;
+ .yes) # autodetect
+ if test ".$PKG_CONFIG" = "." ; then # we use the same default as in pkg.m4
+ AC_PATH_PROG([PKG_CONFIG],[pkg-config],[no])
+ fi
+ if test "$PKG_CONFIG" = "no"
+ then DIR="/tmp" ; test -d "/usr/lib/pkgconfig" && DIR="/usr/lib/pkgconfig"
+ else BIN=`AS_DIRNAME(["$DIR"])` ;
+ if test -d "$BIN/lib/pkgconfig" ; then
+ DIR="$BIN/lib/pkgconfig"
+ else BIN=`AS_DIRNAME(["$DIR"])`
+ if test -d "$BIN/lib/pkgconfig" ; then
+ DIR="$BIN/lib/pkgconfig"
+ else
+ if test -d "/usr/lib/pkgconfig" ; then
+ DIR="/usr/lib/pkgconfig"
+ else
+ DIR="/tmp"
+ fi fi fi
+ fi ;;
+ *) DIR="$enable_default_pkgconfigdir" ;;
+esac
+AX_WARNING_DEFAULT_PKGCONFIGDIR([$1],[$DEF],[$3],[$4],[$5])
+m4_if([$1],,[pkgconfigdir],[$1])="$ax_warning_default_pkgconfig_dir"
+AC_SUBST(m4_if([$1],,[pkgconfigdir],[$1]))
+AS_VAR_POPDEF([DEF])dnl
+AS_VAR_POPDEF([DIR])dnl
+AS_VAR_POPDEF([BIN])dnl
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/libtool.m4 b/Build/source/libs/zziplib/zziplib-src/m4/libtool.m4
new file mode 100644
index 00000000000..4e87d345b95
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/libtool.m4
@@ -0,0 +1,8368 @@
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+])
+
+# serial 58 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+ [m4_default([$3],
+ [m4_fatal([Libtool version $1 or higher is required],
+ 63)])],
+ [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+ *\ * | *\ *)
+ AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_PREPARE_CC_BASENAME
+# -----------------------
+m4_defun([_LT_PREPARE_CC_BASENAME], [
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in @S|@*""; do
+ case $cc_temp in
+ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+])# _LT_PREPARE_CC_BASENAME
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
+# but that macro is also expanded into generated libtool script, which
+# arranges for $SED and $ECHO to be set by different means.
+m4_defun([_LT_CC_BASENAME],
+[m4_require([_LT_PREPARE_CC_BASENAME])dnl
+AC_REQUIRE([_LT_DECL_SED])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+func_cc_basename $1
+cc_basename=$func_cc_basename_result
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
+m4_require([_LT_CMD_TRUNCATE])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ _LT_PATH_MAGIC
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from 'configure', and 'config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
+# 'config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain=$ac_aux_dir/ltmain.sh
+])# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the 'libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+ [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+ [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+ [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+ [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+ [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME. Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+ [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+ [m4_ifval([$1], [$1], [$2])])
+ lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+ m4_ifval([$4],
+ [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+ lt_dict_add_subkey([lt_decl_dict], [$2],
+ [tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+ [0], [m4_fatal([$0: too few arguments: $#])],
+ [1], [m4_fatal([$0: too few arguments: $#: $1])],
+ [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+ [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+ [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+ m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+ m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+ m4_if([$2], [],
+ m4_quote(lt_decl_varnames),
+ m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+ lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to 'config.status' so that its
+# declaration there will have the same value as in 'configure'. VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly. In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+ [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags='_LT_TAGS'dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+# # Some comment about what VAR is for.
+# visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+ [description])))[]dnl
+m4_pushdef([_libtool_name],
+ m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+ [0], [_libtool_name=[$]$1],
+ [1], [_libtool_name=$lt_[]$1],
+ [2], [_libtool_name=$lt_[]$1],
+ [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'
+# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+ m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into 'config.status', and then the shell code to quote escape them in
+# for loops in 'config.status'. Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+ dnl If the libtool generation code has been placed in $CONFIG_LT,
+ dnl instead of duplicating it all over again into config.status,
+ dnl then we will have config.status run $CONFIG_LT later, so it
+ dnl needs to know what name is stored there:
+ [AC_CONFIG_COMMANDS([libtool],
+ [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+ dnl If the libtool generation code is destined for config.status,
+ dnl expand the accumulated commands and init code now:
+ [AC_CONFIG_COMMANDS([libtool],
+ [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[[\\\\\\\`\\"\\\$]]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[[\\\\\\\`\\"\\\$]]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable. If COMMENT is supplied, it is inserted after the
+# '#!' sequence but before initialization text begins. After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script. The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test 0 = "$lt_write_fail" && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+ echo
+ AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+'$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2011 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test 0 != $[#]
+do
+ case $[1] in
+ --version | --v* | -V )
+ echo "$lt_cl_version"; exit 0 ;;
+ --help | --h* | -h )
+ echo "$lt_cl_help"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --quiet | --q* | --silent | --s* | -q )
+ lt_cl_silent=: ;;
+
+ -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try '$[0] --help' for more information.]) ;;
+
+ *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try '$[0] --help' for more information.]) ;;
+ esac
+ shift
+done
+
+if $lt_cl_silent; then
+ exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure. Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test yes = "$silent" &&
+ lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars. Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+ m4_if(_LT_TAG, [C], [
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_PREPARE_MUNGE_PATH_LIST
+_LT_PREPARE_CC_BASENAME
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+ _LT_PROG_LTMAIN
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+# autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+ [C], [_LT_LANG(C)],
+ [C++], [_LT_LANG(CXX)],
+ [Go], [_LT_LANG(GO)],
+ [Java], [_LT_LANG(GCJ)],
+ [Fortran 77], [_LT_LANG(F77)],
+ [Fortran], [_LT_LANG(FC)],
+ [Windows Resource], [_LT_LANG(RC)],
+ [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+ [_LT_LANG($1)],
+ [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+ [LT_SUPPORTED_TAG([$1])dnl
+ m4_append([_LT_TAGS], [$1 ])dnl
+ m4_define([_LT_LANG_]$1[_enabled], [])dnl
+ _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+m4_ifndef([AC_PROG_GO], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_GO. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+############################################################
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC], [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+ if test -n "$ac_tool_prefix"; then
+ AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+ fi
+fi
+if test -z "$GOC"; then
+ AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [LT_LANG(CXX)],
+ [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+ [LT_LANG(F77)],
+ [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+ [LT_LANG(FC)],
+ [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [m4_ifdef([AC_PROG_GCJ],
+ [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+ m4_ifdef([A][M_PROG_GCJ],
+ [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+ m4_ifdef([LT_PROG_GCJ],
+ [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+ [LT_LANG(GO)],
+ [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+ [LT_LANG(RC)],
+ [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+ case $host_os in
+ rhapsody* | darwin*)
+ AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+ AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+ AC_CHECK_TOOL([LIPO], [lipo], [:])
+ AC_CHECK_TOOL([OTOOL], [otool], [:])
+ AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+ _LT_DECL([], [DSYMUTIL], [1],
+ [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+ _LT_DECL([], [NMEDIT], [1],
+ [Tool to change global to local symbols on Mac OS X])
+ _LT_DECL([], [LIPO], [1],
+ [Tool to manipulate fat objects and archives on Mac OS X])
+ _LT_DECL([], [OTOOL], [1],
+ [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+ _LT_DECL([], [OTOOL64], [1],
+ [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+ AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+ [lt_cv_apple_cc_single_mod=no
+ if test -z "$LT_MULTI_MODULE"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi])
+
+ AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+ [lt_cv_ld_exported_symbols_list],
+ [lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+ [lt_cv_ld_exported_symbols_list=yes],
+ [lt_cv_ld_exported_symbols_list=no])
+ LDFLAGS=$save_LDFLAGS
+ ])
+
+ AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+ [lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+ echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+ $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+ ])
+ case $host_os in
+ rhapsody* | darwin1.[[012]])
+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ 10.[[012]][[,.]]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test yes = "$lt_cv_apple_cc_single_mod"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test yes = "$lt_cv_ld_exported_symbols_list"; then
+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+ fi
+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+ m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ if test yes = "$lt_cv_ld_force_load"; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+ m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+ [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+ fi
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined
+ case $cc_basename in
+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test yes = "$_lt_dar_can_shared"; then
+ output_verbose_link_cmd=func_echo_all
+ _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+ _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+ m4_if([$1], [CXX],
+[ if test yes != "$lt_cv_apple_cc_single_mod"; then
+ _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
+ fi
+],[])
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+ lt_aix_libpath_sed='[
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }]'
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi],[])
+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib
+ fi
+ ])
+ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script that will find a shell with a builtin
+# printf (that we can use as an echo command).
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO "$*"
+}
+
+case $ECHO in
+ printf*) AC_MSG_RESULT([printf]) ;;
+ print*) AC_MSG_RESULT([print -r]) ;;
+ *) AC_MSG_RESULT([cat]) ;;
+esac
+
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test "X`printf %s $ECHO`" = "X$ECHO" \
+ || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
+
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
+ [Search for dependent libraries within DIR (or the compiler's sysroot
+ if not specified).])],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted. We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ AC_MSG_RESULT([$with_sysroot])
+ AC_MSG_ERROR([The sysroot must be an absolute path.])
+ ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and where our libraries should be installed.])])
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+ [AS_HELP_STRING([--disable-libtool-lock],
+ [avoid locking (might break parallel builds)])])
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out what ABI is being produced by ac_compile, and set mode
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE=32
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE=64
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+mips64*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ emul=elf
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ emul="${emul}32"
+ ;;
+ *64-bit*)
+ emul="${emul}64"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *MSB*)
+ emul="${emul}btsmip"
+ ;;
+ *LSB*)
+ emul="${emul}ltsmip"
+ ;;
+ esac
+ case `/usr/bin/file conftest.$ac_objext` in
+ *N32*)
+ emul="${emul}n32"
+ ;;
+ esac
+ LD="${LD-ld} -m $emul"
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly. Note that the listed cases only cover the
+ # situations where additional linker options are needed (such as when
+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+ # vice versa); the common cases where no linker options are needed do
+ # not appear in the list.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_LANG_PUSH(C)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+ AC_LANG_POP])
+ if test yes != "$lt_cv_cc_needs_belf"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS=$SAVE_CFLAGS
+ fi
+ ;;
+*-*solaris*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*)
+ case $host in
+ i?86-*-solaris*|x86_64-*-solaris*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ sparc*-*-solaris*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+ LD=${LD-ld}_sol2
+ fi
+ ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks=$enable_libtool_lock
+])# _LT_ENABLE_LOCK
+
+
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+ [lt_cv_ar_at_file=no
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+ [echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+ AC_TRY_EVAL([lt_ar_try])
+ if test 0 -eq "$ac_status"; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ AC_TRY_EVAL([lt_ar_try])
+ if test 0 -ne "$ac_status"; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+ ])
+ ])
+
+if test no = "$lt_cv_ar_at_file"; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+ [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[_LT_PROG_AR
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+ [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+ [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+ [Whether to use a lock for old archive extraction])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ fi
+ $RM conftest*
+])
+
+if test yes = "[$]$2"; then
+ m4_if([$5], , :, [$5])
+else
+ m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $3"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ else
+ $2=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+])
+
+if test yes = "[$]$2"; then
+ m4_if([$4], , :, [$4])
+else
+ m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+])
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+ AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+ [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test yes = "$cross_compiling"; then :
+ [$4]
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}]
+_LT_EOF
+ if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) $1 ;;
+ x$lt_dlneed_uscore) $2 ;;
+ x$lt_dlunknown|x*) $3 ;;
+ esac
+ else :
+ # compilation failed
+ $3
+ fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ])
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen=shl_load],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen=dlopen],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+ [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+ [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+ [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+ fi
+ fi
+ chmod u+w . 2>&AS_MESSAGE_LOG_FD
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+ [Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links=nottested
+if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then
+ # do not overwrite the value of need_locks provided by the user
+ AC_MSG_CHECKING([if we can lock with hard links])
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ AC_MSG_RESULT([$hard_links])
+ if test no = "$hard_links"; then
+ AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe])
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+ [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/",
+ [Define to the sub-directory where libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+ test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+ test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then
+
+ # We can hardcode non-existent directories.
+ if test no != "$_LT_TAGVAR(hardcode_direct, $1)" &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" &&
+ test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then
+ # Linking always hardcodes the temporary library directory.
+ _LT_TAGVAR(hardcode_action, $1)=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ _LT_TAGVAR(hardcode_action, $1)=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test relink = "$_LT_TAGVAR(hardcode_action, $1)" ||
+ test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+ test no = "$enable_shared"; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+ [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP"; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ ;;
+ *)
+ AC_MSG_RESULT([no])
+ ;;
+ esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_PREPARE_MUNGE_PATH_LIST
+# ---------------------------
+# Make sure func_munge_path_list() is defined correctly.
+m4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
+[[# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x@S|@2 in
+ x)
+ ;;
+ *:)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+ ;;
+ x:*)
+ eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+ ;;
+ *)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+]])# _LT_PREPARE_PATH_LIST
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+ [], [
+if test yes = "$GCC"; then
+ case $host_os in
+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+ *) lt_awk_arg='/^libraries:/' ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
+ *) lt_sed_strip_eq='s|=/|/|g' ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary...
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ # ...but if some path component already ends with the multilib dir we assume
+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+ case "$lt_multi_os_dir; $lt_search_path_spec " in
+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+ lt_multi_os_dir=
+ ;;
+ esac
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+ elif test -n "$lt_multi_os_dir"; then
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+ lt_foo = "";
+ lt_count = 0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo = "/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+ if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+AC_ARG_VAR([LT_SYS_LIBRARY_PATH],
+[User-defined run-time library search path.])
+
+case $host_os in
+aix3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+
+aix[[4-9]]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 supports IA64
+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line '#! .'. This would cause the generated library to
+ # depend on '.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[[01]] | aix4.[[01]].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a[(]lib.so.V[)]'
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='$libname$shared_ext'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[[45]]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+m4_if([$1], [],[
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+ library_names_spec='$libname.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec=$LIB
+ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[[23]].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+haiku*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ if test 32 = "$HPUX_IA64_MODE"; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+ fi
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[[3-9]]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+linux*android*)
+ version_type=none # Android doesn't support versioned libraries.
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext'
+ soname_spec='$libname$release$shared_ext'
+ finish_cmds=
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ dynamic_linker='Android linker'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+ [lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+ [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+ [lt_cv_shlibpath_overrides_runpath=yes])])
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+ ])
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd* | bitrig*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec=/usr/lib
+ need_lib_prefix=no
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ need_version=no
+ else
+ need_version=yes
+ fi
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+os2*)
+ libname_spec='$name'
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test yes = "$with_gnu_ld"; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+ soname_spec='$libname$shared_ext.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=sco
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test yes = "$with_gnu_ld"; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+ [Variables whose values should be saved in libtool wrapper scripts and
+ restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+ [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+ [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+ [[List of archive names. First name is the real one, the rest are links.
+ The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+ [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+ [Permission mode override for installation of shared libraries])
+_LT_DECL([], [postinstall_cmds], [2],
+ [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+ [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+ [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+ [[As "finish_cmds", except a single script fragment to be evaled but
+ not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+ [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+ [Compile-time system search path for libraries])
+_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
+ [Detected run-time system search path for libraries])
+_LT_DECL([], [configure_time_lt_sys_library_path], [2],
+ [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program that can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] | ?:[\\/]*])
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="m4_if([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$1"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac])
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+ [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program that can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+ else
+ MAGIC_CMD=:
+ fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
+
+AC_ARG_WITH([gnu-ld],
+ [AS_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+ [test no = "$withval" || with_gnu_ld=yes],
+ [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by $CC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi])
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+ lt_cv_ld_reload_flag,
+ [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test yes != "$GCC"; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test yes = "$GCC"; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_PATH_DD
+# -----------
+# find a working dd
+m4_defun([_LT_PATH_DD],
+[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
+[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi])
+rm -f conftest.i conftest2.i conftest.out])
+])# _LT_PATH_DD
+
+
+# _LT_CMD_TRUNCATE
+# ----------------
+# find command to truncate a binary pipe
+m4_defun([_LT_CMD_TRUNCATE],
+[m4_require([_LT_PATH_DD])
+AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
+_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
+ [Command to truncate a binary pipe])
+])# _LT_CMD_TRUNCATE
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[[45]]*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[[3-9]]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd* | bitrig*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+ [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+ [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+ [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi])
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+ AC_SUBST([DUMPBIN])
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+ [lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
+ cat conftest.out >&AS_MESSAGE_LOG_FD
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+# -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh;
+ # decide which one to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd=$ECHO
+ ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+ [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+ [lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*])
+if test yes != "$lt_cv_path_mainfest_tool"; then
+ MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
+
+# _LT_DLL_DEF_P([FILE])
+# ---------------------
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with func_dll_def_p in the libtool script
+AC_DEFUN([_LT_DLL_DEF_P],
+[dnl
+ test DEF = "`$SED -n dnl
+ -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace
+ -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments
+ -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl
+ -e q dnl Only consider the first "real" line
+ $1`" dnl
+])# _LT_DLL_DEF_P
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+ # These system don't have libm, or don't need it
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, cos, LIBM=-lm)
+ ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test yes = "$GCC"; then
+ case $cc_basename in
+ nvcc*)
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+ esac
+
+ _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+ lt_cv_prog_compiler_rtti_exceptions,
+ [-fno-rtti -fno-exceptions], [],
+ [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+ [Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[[BCDT]]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[[ABCDGISTW]]'
+ ;;
+hpux*)
+ if test ia64 = "$host_cpu"; then
+ symcode='[[ABCDEGRST]]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[[BCDEGRST]]'
+ ;;
+osf*)
+ symcode='[[BCDEGQRST]]'
+ ;;
+solaris*)
+ symcode='[[BDRT]]'
+ ;;
+sco3.2v5*)
+ symcode='[[DT]]'
+ ;;
+sysv4.2uw2*)
+ symcode='[[DT]]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[[ABDT]]'
+ ;;
+sysv4)
+ symcode='[[DFNSTU]]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Gets list of data symbols to import.
+ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+ # Adjust the below global symbol transforms to fixup imported variables.
+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
+ lt_c_name_lib_hook="\
+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
+else
+ # Disable hooks by default.
+ lt_cv_sys_global_symbol_to_import=
+ lt_cdecl_hook=
+ lt_c_name_hook=
+ lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function,
+ # D for any global variable and I for any imported variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK ['"\
+" {last_section=section; section=\$ 3};"\
+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx]"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT@&t@_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT@&t@_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS=conftstm.$ac_objext
+ CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+ if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test yes = "$pipe_works"; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ AC_MSG_RESULT(failed)
+else
+ AC_MSG_RESULT(ok)
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+ [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+ [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1],
+ [Transform the output of nm into a list of symbols to manually relocate])
+_LT_DECL([global_symbol_to_c_name_address],
+ [lt_cv_sys_global_symbol_to_c_name_address], [1],
+ [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+ [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+ [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([nm_interface], [lt_cv_nm_interface], [1],
+ [The name lister interface])
+_LT_DECL([], [nm_file_list_spec], [1],
+ [Specify filename containing input files for $NM])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+m4_if([$1], [CXX], [
+ # C++ specific cases for pic, static, wl, etc.
+ if test yes = "$GXX"; then
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)=
+ ;;
+ interix[[3-9]]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix[[4-9]]*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+ if test ia64 != "$host_cpu"; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ fi
+ ;;
+ aCC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ interix*)
+ # This is c89, which is MS Visual C++ (no shared libs)
+ # Anyone wants to do a port?
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ ecpc* )
+ # old Intel C++ for x86_64, which still supported -KPIC.
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ icpc* )
+ # Intel C++, used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+ # IBM XL 8.0, 9.0 on PPC and BlueGene
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd*)
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ vxworks*)
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+],
+[
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[[3-9]]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+ if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+ fi
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ case $cc_basename in
+ nagfor*)
+ # NAG Fortran compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC (with -KPIC) is the default.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ # old Intel for x86_64, which still supported -KPIC.
+ ecc*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ ccc*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All Alpha code is PIC.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+ ;;
+ *Sun\ F* | *Sun*Fortran*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ *Intel*\ [[CF]]*Compiler*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ *Portland\ Group*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All OSF/1 code is PIC.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ rdos*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ solaris*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ unicos*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+
+ uts4*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ *)
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+])
+case $host_os in
+ # For platforms that do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+ ;;
+esac
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+ _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+ [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+ [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+ "" | " "*) ;;
+ *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+ esac],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+ [Additional compiler flags for building library objects])
+
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+ [How to pass a linker flag through the compiler])
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+ _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+ $lt_tmp_static_flag,
+ [],
+ [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+ [Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+ case $host_os in
+ aix[[4-9]]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
+ ;;
+ cygwin* | mingw* | cegcc*)
+ case $cc_basename in
+ cl*)
+ _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ ;;
+ *)
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+ ;;
+ esac
+ ;;
+ *)
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+], [
+ runpath_var=
+ _LT_TAGVAR(allow_undefined_flag, $1)=
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(archive_cmds, $1)=
+ _LT_TAGVAR(archive_expsym_cmds, $1)=
+ _LT_TAGVAR(compiler_needs_object, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(hardcode_automatic, $1)=no
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ _LT_TAGVAR(hardcode_minus_L, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_TAGVAR(inherit_rpath, $1)=no
+ _LT_TAGVAR(link_all_deplibs, $1)=unknown
+ _LT_TAGVAR(module_cmds, $1)=
+ _LT_TAGVAR(module_expsym_cmds, $1)=
+ _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+ _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+ _LT_TAGVAR(thread_safe_flag_spec, $1)=
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ _LT_TAGVAR(include_expsyms, $1)=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ' (' and ')$', so one must not match beginning or
+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+ # as well as any symbol that contains 'd'.
+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test yes != "$GCC"; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test yes = "$with_gnu_ld"; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+ *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test yes = "$lt_use_gnu_ld_interface"; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='$wl'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[[3-9]]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test ia64 != "$host_cpu"; then
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)=''
+ ;;
+ m68k)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ haiku*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+
+ interix[[3-9]]*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test linux-dietlibc = "$host_os"; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test no = "$tmp_diet"
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ tcc*)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
+ ;;
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+
+ if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then
+ runpath_var=
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ fi
+ ;;
+
+ aix[[4-9]]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+ for ld_flag in $LDFLAGS; do
+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_TAGVAR(archive_cmds, $1)=''
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ ;;
+ esac
+
+ if test yes = "$GCC"; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag="$shared_flag "'$wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
+ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)=''
+ ;;
+ m68k)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[[45]]*)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl*)
+ # Native MSVC
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ # FIXME: Should let the user specify the lib program.
+ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ _LT_DARWIN_LINKER_FEATURES($1)
+ ;;
+
+ dgux*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ hpux9*)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ ;;
+
+ hpux10*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ m4_if($1, [], [
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ _LT_LINKER_OPTION([if $CC understands -b],
+ _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+ [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+ [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+ [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+ ;;
+ esac
+ fi
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ *)
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+ [lt_cv_irix_exported_symbol],
+ [save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+ AC_LINK_IFELSE(
+ [AC_LANG_SOURCE(
+ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+ [C++], [[int foo (void) { return 0; }]],
+ [Fortran 77], [[
+ subroutine foo
+ end]],
+ [Fortran], [[
+ subroutine foo
+ end]])])],
+ [lt_cv_irix_exported_symbol=yes],
+ [lt_cv_irix_exported_symbol=no])
+ LDFLAGS=$save_LDFLAGS])
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(inherit_rpath, $1)=yes
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ newsos6)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ fi
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+
+ osf3*)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ else
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ solaris*)
+ _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+ if test yes = "$GCC"; then
+ wlarc='$wl'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='$wl'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'. GCC discards it without '$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ sunos4*)
+ if test sequent = "$host_vendor"; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ ;;
+ motorola)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4.3*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+
+ if test sni = "$host_vendor"; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+ [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+ # Assume -lc should be added
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+ if test yes,yes = "$GCC,$enable_shared"; then
+ case $_LT_TAGVAR(archive_cmds, $1) in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+ [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+ [$RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+ pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+ _LT_TAGVAR(allow_undefined_flag, $1)=
+ if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+ then
+ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ else
+ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ fi
+ _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ ])
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+ [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+ [enable_shared_with_static_runtimes], [0],
+ [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+ [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+ [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+ [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+ [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+ [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+ [Commands used to build a loadable module if different from building
+ a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+ [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+ [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+ [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+ [Flag to hardcode $libdir into a binary during linking.
+ This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+ [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+ [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+ DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+ [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+ DIR into the resulting binary and the resulting library dependency is
+ "absolute", i.e impossible to change by setting $shlibpath_var if the
+ library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+ [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+ into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+ [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+ into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+ [Set to "yes" if building a shared library automatically hardcodes DIR
+ into the library and all subsequent libraries and executables linked
+ against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+ [Set to yes if linker adds runtime paths of dependent libraries
+ to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+ [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [always_export_symbols], [0],
+ [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+ [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+ [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+ [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+ [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+ [Commands necessary for finishing linking programs])
+_LT_TAGDECL([], [file_list_spec], [1],
+ [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC=$CC
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+ LT_SYS_DLOPEN_SELF
+ _LT_CMD_STRIPLIB
+
+ # Report what library types will actually be built
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[[4-9]]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC=$lt_save_CC
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test no != "$CXX" &&
+ ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
+ (test g++ != "$CXX"))); then
+ AC_PROG_CXXCPP
+else
+ _lt_caught_CXX_error=yes
+fi
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_caught_CXX_error"; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="int some_variable = 0;"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_CFLAGS=$CFLAGS
+ lt_save_LD=$LD
+ lt_save_GCC=$GCC
+ GCC=$GXX
+ lt_save_with_gnu_ld=$with_gnu_ld
+ lt_save_path_LD=$lt_cv_path_LD
+ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+ else
+ $as_unset lt_cv_prog_gnu_ld
+ fi
+ if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+ else
+ $as_unset lt_cv_path_LD
+ fi
+ test -z "${LDCXX+set}" || LD=$LDCXX
+ CC=${CXX-"c++"}
+ CFLAGS=$CXXFLAGS
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+
+ if test -n "$compiler"; then
+ # We don't want -fno-exception when compiling C++ code, so set the
+ # no_builtin_flag separately
+ if test yes = "$GXX"; then
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+ else
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+ fi
+
+ if test yes = "$GXX"; then
+ # Set up default GNU C++ configuration
+
+ LT_PATH_LD
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test yes = "$with_gnu_ld"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='$wl'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+ $GREP 'no-whole-archive' > /dev/null; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+ else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+ fi
+
+ # PORTME: fill in a description of your system's C++ link characteristics
+ AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aix[[4-9]]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_TAGVAR(archive_cmds, $1)=''
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ ;;
+ esac
+
+ if test yes = "$GXX"; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag=$shared_flag' $wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to
+ # export.
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ # The "-G" linker flag allows undefined symbols.
+ _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
+ # Determine the default libpath from the value encoded in an empty
+ # executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
+ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared
+ # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ case $GXX,$cc_basename in
+ ,cl* | no,cl*)
+ # Native MSVC
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ # Don't use ranlib
+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ func_to_tool_file "$lt_outputfile"~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # g++
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ darwin* | rhapsody*)
+ _LT_DARWIN_LINKER_FEATURES($1)
+ ;;
+
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ freebsd2.*)
+ # C++ shared libraries reported to be fairly broken before
+ # switch to ELF
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ freebsd-elf*)
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ ;;
+
+ freebsd* | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ ;;
+
+ haiku*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ hpux9*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test yes = "$GXX"; then
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ hpux10*|hpux11*)
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ ;;
+ esac
+ fi
+ case $host_cpu in
+ hppa*64*|ia64*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ *)
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test yes = "$GXX"; then
+ if test no = "$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ interix[[3-9]]*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test yes = "$GXX"; then
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
+ fi
+ fi
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+ esac
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(inherit_rpath, $1)=yes
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc* | ecpc* )
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ case `$CC -V` in
+ *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
+ _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ $RANLIB $oldlib'
+ _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 6 and above use weak symbols
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+ ;;
+ xl* | mpixl* | bgxl*)
+ # IBM XL 8.0 on PPC, with GNU ld
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='func_echo_all'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ m88k*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+
+ *nto* | *qnx*)
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ fi
+ output_verbose_link_cmd=func_echo_all
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ case $host in
+ osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+ *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+ esac
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ cxx*)
+ case $host in
+ osf3*)
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ ;;
+ *)
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
+ $RM $lib.exp'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test yes,no = "$GXX,$with_gnu_ld"; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ case $host in
+ osf3*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ psos*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+ ;;
+ esac
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+ output_verbose_link_cmd='func_echo_all'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test yes,no = "$GXX,$with_gnu_ld"; then
+ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ else
+ # g++ 2.7 appears to require '-G' NOT '-shared' on this
+ # platform.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ fi
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+ '"$_LT_TAGVAR(old_archive_cmds, $1)"
+ _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+ '"$_LT_TAGVAR(reload_cmds, $1)"
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+
+ AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+ test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
+
+ _LT_TAGVAR(GCC, $1)=$GXX
+ _LT_TAGVAR(LD, $1)=$LD
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_SYS_HIDDEN_LIBDEPS($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+ LDCXX=$LD
+ LD=$lt_save_LD
+ GCC=$lt_save_GCC
+ with_gnu_ld=$lt_save_with_gnu_ld
+ lt_cv_path_LDCXX=$lt_cv_path_LD
+ lt_cv_path_LD=$lt_save_path_LD
+ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test yes != "$_lt_caught_CXX_error"
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+ case @S|@2 in
+ .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;;
+ *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;;
+ esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library. It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+ subroutine foo
+ implicit none
+ integer*4 a
+ a=0
+ return
+ end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+ subroutine foo
+ implicit none
+ integer a
+ a=0
+ return
+ end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+ private int a;
+ public void bar (void) {
+ a = 0;
+ }
+};
+_LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
+])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ for p in `eval "$output_verbose_link_cmd"`; do
+ case $prev$p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test x-L = "$p" ||
+ test x-R = "$p"; then
+ prev=$p
+ continue
+ fi
+
+ # Expand the sysroot to ease extracting the directories later.
+ if test -z "$prev"; then
+ case $p in
+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+ esac
+ fi
+ case $p in
+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+ esac
+ if test no = "$pre_test_object_deps_done"; then
+ case $prev in
+ -L | -R)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+ _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p
+ else
+ _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+ _LT_TAGVAR(postdeps, $1)=$prev$p
+ else
+ _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p"
+ fi
+ fi
+ prev=
+ ;;
+
+ *.lto.$objext) ;; # Ignore GCC LTO objects
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test no = "$pre_test_object_deps_done"; then
+ if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+ _LT_TAGVAR(predep_objects, $1)=$p
+ else
+ _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+ fi
+ else
+ if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+ _LT_TAGVAR(postdep_objects, $1)=$p
+ else
+ _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+ # Interix 3.5 installs completely hosed .la files for C++, so rather than
+ # hack all around it, let's just trust "g++" to DTRT.
+ _LT_TAGVAR(predep_objects,$1)=
+ _LT_TAGVAR(postdep_objects,$1)=
+ _LT_TAGVAR(postdeps,$1)=
+ ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+ [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+ [Dependencies to place before and after the objects being linked to
+ create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+ [The library search path used internally by the compiler when linking
+ a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test no = "$F77"; then
+ _lt_disable_F77=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_disable_F77"; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code="\
+ program t
+ end
+"
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_GCC=$GCC
+ lt_save_CFLAGS=$CFLAGS
+ CC=${F77-"f77"}
+ CFLAGS=$FFLAGS
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+ GCC=$G77
+ if test -n "$compiler"; then
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+ aix[[4-9]]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_TAGVAR(GCC, $1)=$G77
+ _LT_TAGVAR(LD, $1)=$LD
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ GCC=$lt_save_GCC
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_F77"
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test no = "$FC"; then
+ _lt_disable_FC=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_disable_FC"; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code="\
+ program t
+ end
+"
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_GCC=$GCC
+ lt_save_CFLAGS=$CFLAGS
+ CC=${FC-"f95"}
+ CFLAGS=$FCFLAGS
+ compiler=$CC
+ GCC=$ac_cv_fc_compiler_gnu
+
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+
+ if test -n "$compiler"; then
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+ aix[[4-9]]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu
+ _LT_TAGVAR(LD, $1)=$LD
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_SYS_HIDDEN_LIBDEPS($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ GCC=$lt_save_GCC
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_FC"
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)=$LD
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)=$LD
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code=$lt_simple_compile_test_code
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+CFLAGS=
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+ :
+ _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+ [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+ [AC_CHECK_TOOL(GCJ, gcj,)
+ test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
+ AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible. Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+ [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_SED. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+############################################################
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for lt_ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+ test ! -f "$lt_ac_sed" && continue
+ cat /dev/null > conftest.in
+ lt_ac_count=0
+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+ # Check for GNU sed and select it if it is found.
+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+ lt_cv_path_SED=$lt_ac_sed
+ break
+ fi
+ while true; do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo >>conftest.nl
+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+ cmp -s conftest.out conftest.nl || break
+ # 10000 chars as input seems more than enough
+ test 10 -lt "$lt_ac_count" && break
+ lt_ac_count=`expr $lt_ac_count + 1`
+ if test "$lt_ac_count" -gt "$lt_ac_max"; then
+ lt_ac_max=$lt_ac_count
+ lt_cv_path_SED=$lt_ac_sed
+ fi
+ done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine what file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+ [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+ [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ltoptions.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ltoptions.m4
new file mode 100644
index 00000000000..94b08297666
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ltoptions.m4
@@ -0,0 +1,437 @@
+# Helper functions for option handling. -*- Autoconf -*-
+#
+# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
+# Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 8 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it. Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+ _LT_MANGLE_DEFUN([$1], [$2]),
+ [m4_warning([Unknown $1 option '$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+ [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME. If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+ dnl
+ dnl Simply set some default values (i.e off) if boolean options were not
+ dnl specified:
+ _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+ ])
+ _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+ ])
+ dnl
+ dnl If no reference was made to various pairs of opposing options, then
+ dnl we run the default mode handler for the pair. For example, if neither
+ dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
+ dnl archives by default:
+ _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+ _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+ [_LT_ENABLE_FAST_INSTALL])
+ _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
+ [_LT_WITH_AIX_SONAME([aix])])
+ ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS], [1], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the 'shared' and
+# 'disable-shared' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+ [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+ [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+ _LT_DECL([build_libtool_libs], [enable_shared], [0],
+ [Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the 'static' and
+# 'disable-static' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+ [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+ [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+ _LT_DECL([build_old_libs], [enable_static], [0],
+ [Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the 'fast-install'
+# and 'disable-fast-install' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+ [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+ [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+ [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_AIX_SONAME([DEFAULT])
+# ----------------------------------
+# implement the --with-aix-soname flag, and support the `aix-soname=aix'
+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
+# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
+m4_define([_LT_WITH_AIX_SONAME],
+[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
+shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[[5-9]]*,yes)
+ AC_MSG_CHECKING([which variant of shared library versioning to provide])
+ AC_ARG_WITH([aix-soname],
+ [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
+ [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
+ [case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ AC_MSG_ERROR([Unknown argument to --with-aix-soname])
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname],
+ [AC_CACHE_VAL([lt_cv_with_aix_soname],
+ [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
+ with_aix_soname=$lt_cv_with_aix_soname])
+ AC_MSG_RESULT([$with_aix_soname])
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+_LT_DECL([], [shared_archive_member_spec], [0],
+ [Shared archive member basename, for filename based shared library versioning on AIX])dnl
+])# _LT_WITH_AIX_SONAME
+
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
+# LT_INIT options.
+# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+ [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
+ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+ [lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [pic_mode=m4_default([$1], [default])])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+ [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+ [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+ [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+ [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+ [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ltsugar.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ltsugar.m4
new file mode 100644
index 00000000000..48bc9344a4d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ltsugar.m4
@@ -0,0 +1,124 @@
+# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
+#
+# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
+# Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+ [$#], [2], [[$2]],
+ [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+ [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59, which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+ [$#], 1, [],
+ [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+ m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+ [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+ [m4_foreach([_Lt_suffix],
+ ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+ [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+ [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+ [lt_append([$1], [$2], [$3])$4],
+ [$5])],
+ [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+ m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+ m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+ [$5],
+ [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+ [lt_join(m4_quote(m4_default([$4], [[, ]])),
+ lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+ [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/ltversion.m4 b/Build/source/libs/zziplib/zziplib-src/m4/ltversion.m4
new file mode 100644
index 00000000000..fa04b52a3bf
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/ltversion.m4
@@ -0,0 +1,23 @@
+# ltversion.m4 -- version numbers -*- Autoconf -*-
+#
+# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
+# Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# @configure_input@
+
+# serial 4179 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.4.6])
+m4_define([LT_PACKAGE_REVISION], [2.4.6])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.4.6'
+macro_revision='2.4.6'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/lt~obsolete.m4 b/Build/source/libs/zziplib/zziplib-src/m4/lt~obsolete.m4
new file mode 100644
index 00000000000..c6b26f88f6c
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/lt~obsolete.m4
@@ -0,0 +1,99 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
+#
+# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
+# Foundation, Inc.
+# Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 5 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else. This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_on_darwin_zsh_overquoting.m4 b/Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_on_darwin_zsh_overquoting.m4
new file mode 100644
index 00000000000..ecbfc5ef2ea
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_on_darwin_zsh_overquoting.m4
@@ -0,0 +1,38 @@
+dnl /usr/share/aclocal/guidod-cvs/patch_libtool_on_darwin_zsh_overquoting.m4
+dnl @synopsis PATCH_LIBTOOL_ON_DARWIN_ZSH_OVERQUOTING
+dnl
+dnl libtool 1.4.x has a bug on darwin where the "zsh" is installed as
+dnl the bourne shell replacement. Of course, the zsh is called in a
+dnl compatibility mode but there is a common problem with it, probably
+dnl a bug of zsh. Newer darwin systems have a "bash" installed now, but
+dnl the configure-default will be "zsh" in most systems still.
+dnl
+dnl The bug revelas itself as an overquoted statement in the libtool
+dnl cmds-spec for sharedlib creation on testing for "module" builds.
+dnl Later libtool has gone rid of it by simply removing the quotes at
+dnl that point . Here we maintain the original style and simply remove
+dnl the extra escape character, i.e. we look for "archive_cmds" and
+dnl replace a sequence of triple-backslash-and-doublequote with
+dnl single-backslash-and-doublequote.
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2003-03-23
+dnl @license GPLWithACException
+
+AC_DEFUN([PATCH_LIBTOOL_ON_DARWIN_ZSH_OVERQUOTING],
+[# libtool-1.4 specific, on zsh target the final requoting does one too much
+case "$host_os" in
+ darwin*)
+ if grep "1.92" libtool >/dev/null ; then
+AC_MSG_RESULT(patching libtool on .so-sharedlib creation (zsh overquoting))
+ test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool)
+ sed -e '/archive_cmds=/s:[[\\]][[\\]][[\\]]*":\\":g' libtool >libtool.new
+ (test -s libtool.new || rm libtool.new) 2>/dev/null
+ test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !!
+ test -f libtool || mv libtool.old libtool
+ fi
+ ;;
+esac
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_sys_lib_search_path_spec.m4 b/Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_sys_lib_search_path_spec.m4
new file mode 100644
index 00000000000..1eadedf3075
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_sys_lib_search_path_spec.m4
@@ -0,0 +1,41 @@
+dnl /usr/share/aclocal/guidod-cvs/patch_libtool_sys_lib_search_path_spec.m4
+dnl ______ /usr/share/aclocal/guidod-cvs/patch_libtool_sys_lib_search_path_spec.m4 ______
+dnl @synopsis PATCH_LIBTOOL_SYS_LIB_SEARCH_PATH_SPEC
+dnl
+dnl Cross-compiling to win32 from a unix system reveals a bug - the
+dnl path-separator has been set to ";" depending on the target system.
+dnl However, the crossgcc search_path_spec works in a unix-environment
+dnl with unix-style directories and unix-stylish path_separator. The
+dnl result: the search_path_spec is a single word still containing the
+dnl ":" separators.
+dnl
+dnl This macro fixes the situation: when we see the libtool PATH_SEP to
+dnl be ":" and search_path_spec to contain ":" characters, then these
+dnl are replaced with spaces to let the resulting string work as a
+dnl for-loop argument in libtool scripts that resolve -no-undefined
+dnl libraries.
+dnl
+dnl Later libtool generations have fixed the situation with using
+dnl $PATH_SEPARATOR in the first place as the original path delimiter
+dnl that will be scanned for and replaced into spaces.
+dnl
+dnl @category Misc
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2005-01-21
+dnl @license GPLWithACException
+
+AC_DEFUN([PATCH_LIBTOOL_SYS_LIB_SEARCH_PATH_SPEC],
+[# patch libtool to fix sys_lib_search_path (e.g. crosscompiling a win32 dll)
+if test "_$PATH_SEPARATOR" = "_:" ; then
+ if grep "^sys_lib_search_path_spec.*:" libtool >/dev/null ; then
+AC_MSG_RESULT(patching libtool to fix sys_lib_search_path_spec)
+ test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool)
+ sed -e "/^sys_lib_search_path_spec/s/:/ /g" libtool >libtool.new
+ (test -s libtool.new || rm libtool.new) 2>/dev/null
+ test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !!
+ test -f libtool || mv libtool.old libtool
+ fi
+fi
+])
+
+
diff --git a/Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_to_add_host_cc.m4 b/Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_to_add_host_cc.m4
new file mode 100644
index 00000000000..ff9247b5efa
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/m4/patch_libtool_to_add_host_cc.m4
@@ -0,0 +1,66 @@
+dnl /usr/share/aclocal/guidod-cvs/patch_libtool_to_add_host_cc.m4
+dnl @synopsis PATCH_LIBTOOL_TO_ADD_HOST_CC
+dnl
+dnl The libtool 1.4.x processing (and patched 1.3.5) uses a little
+dnl "impgen" tool to turn a "*.dll" into an import "*.lib" as it is
+dnl needed for win32 targets. However, this little tool is not shipped
+dnl by binutils, it is not even a command option of dlltool or dllwrap.
+dnl It happens to be a C source snippet implanted into the libtool
+dnl sources - it gets written to ".libs", compiled into a binary
+dnl on-the-fly, and executed right away on the "dll" file to create the
+dnl import-lib (dll.a files in gcc-speak).
+dnl
+dnl This mode works fine for a native build within mingw or cygwin, but
+dnl it does not work in cross-compile mode since CC is a crosscompiler
+dnl - it will create an .exe file on a non-win32 system, and as a
+dnl result an impgen.exe is created on-the-fly that can not be executed
+dnl on-the-fly. Luckily, the actual libtool snippet uses HOST_CC to
+dnl compile the sources which has a fallback to CC when the HOST_CC
+dnl variable was not set.
+dnl
+dnl this ac-macro is trying to detect a valid HOST_CC which is not a
+dnl cross-compiler. This is done by looking into the $PATH for a "cc"
+dnl and the result is patched into libtool a HOST_CC, iow it adds
+dnl another configured variable at the top of the libtool script.
+dnl
+dnl In discussions on the libtool mailinglist it occurred that later
+dnl gcc/binutils generations are able to link with dlls directly, i.e.
+dnl there is no import-lib needed anymore. The import-table is created
+dnl within the linker itself (in-memory) and bound to the .exe/.dll
+dnl currently in the making. The whole stuff of impgen exe and
+dnl compiling it on-the-fly, well, it is superflouos then.
+dnl
+dnl Since mingw crosscompilers tend to be quite a fresh development it
+dnl was agreed to remove the impgen stuff completely from libtool
+dnl sources. Still however, this macro does not hurt since it does not
+dnl patch impgen cmds but it just adds HOST_CC which might be useful in
+dnl other cross-compiling cases as well. Therefore, you can leave it in
+dnl for maximum compatibility and portability.
+dnl
+dnl @category Misc
+dnl @category C
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2005-01-21
+dnl @license GPLWithACException
+
+AC_DEFUN([PATCH_LIBTOOL_TO_ADD_HOST_CC],
+[# patch libtool to add HOST_CC sometimes needed in crosscompiling a win32 dll
+if grep "HOST_CC" libtool >/dev/null; then
+ if test "$build" != "$host" ; then
+ if test "_$HOST_CC" = "_" ; then
+ HOST_CC="false"
+ for i in `echo $PATH | sed 's,:, ,g'` ; do
+ test -x $i/cc && HOST_CC=$i/cc
+ done
+ fi
+AC_MSG_RESULT(patching libtool to add HOST_CC=$HOST_CC)
+ test -f libtool.old || (mv libtool libtool.old && cp libtool.old libtool)
+ sed -e "/BEGIN.*LIBTOOL.*CONFIG/a\\
+HOST_CC=$HOST_CC" libtool >libtool.new
+ (test -s libtool.new || rm libtool.new) 2>/dev/null
+ test -f libtool.new && mv libtool.new libtool # not 2>/dev/null !!
+ test -f libtool || mv libtool.old libtool
+ fi
+fi
+])
+
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc6/zzcat.dsp b/Build/source/libs/zziplib/zziplib-src/msvc6/zzcat.dsp
new file mode 100644
index 00000000000..861c81b5d44
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc6/zzcat.dsp
@@ -0,0 +1,98 @@
+# Microsoft Developer Studio Project File - Name="zzcat" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=zzcat - 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 "zzcat.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 "zzcat.mak" CFG="zzcat - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "zzcat - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "zzcat - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "zzcat - 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/zzcat"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x41d /d "NDEBUG"
+# ADD RSC /l 0x41d /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib zzip-1.lib libz.lib /nologo /version:10 /subsystem:console /machine:I386 /libpath:"d:\lib" /libpath:"Release"
+
+!ELSEIF "$(CFG)" == "zzcat - 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/zzcat"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x41d /d "_DEBUG"
+# ADD RSC /l 0x41d /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib zziplib.lib libz.lib /nologo /version:10 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"d:\lib" /libpath:"Debug"
+
+!ENDIF
+
+# Begin Target
+
+# Name "zzcat - Win32 Release"
+# Name "zzcat - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "c;cpp"
+# Begin Source File
+
+SOURCE=..\bins\zzcat.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h"
+# End Group
+# End Target
+# End Project
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc6/zzdir.dsp b/Build/source/libs/zziplib/zziplib-src/msvc6/zzdir.dsp
new file mode 100644
index 00000000000..37431dc6c84
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc6/zzdir.dsp
@@ -0,0 +1,98 @@
+# Microsoft Developer Studio Project File - Name="zzdir" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=zzdir - 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 "zzdir.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 "zzdir.mak" CFG="zzdir - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "zzdir - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "zzdir - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "zzdir - 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/zzdir"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x41d /d "NDEBUG"
+# ADD RSC /l 0x41d /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib zzip-1.lib libz.lib /nologo /version:10 /subsystem:console /machine:I386 /libpath:"d:\lib" /libpath:"Release"
+
+!ELSEIF "$(CFG)" == "zzdir - 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/zzdir"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x41d /d "_DEBUG"
+# ADD RSC /l 0x41d /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib zziplib.lib libz.lib /nologo /version:10 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"d:\lib" /libpath:"Debug"
+
+!ENDIF
+
+# Begin Target
+
+# Name "zzdir - Win32 Release"
+# Name "zzdir - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "c;cpp"
+# Begin Source File
+
+SOURCE=..\bins\zzdir.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h"
+# End Group
+# End Target
+# End Project
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc6/zzip.dsp b/Build/source/libs/zziplib/zziplib-src/msvc6/zzip.dsp
new file mode 100644
index 00000000000..09ce2566a14
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc6/zzip.dsp
@@ -0,0 +1,183 @@
+# Microsoft Developer Studio Project File - Name="zzip" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=zzip - 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 "zzip.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 "zzip.mak" CFG="zzip - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "zzip - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "zzip - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "zzip - 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/zzip"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZZIP_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I ".." /I "d:\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZZIP_EXPORTS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /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 odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 kernel32.lib libz.lib /nologo /version:10 /dll /machine:I386 /out:"Release/zzip-1.dll" /libpath:"d:\lib"
+
+!ELSEIF "$(CFG)" == "zzip - 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/zzip"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZZIP_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I ".." /I "D:\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZZIP_EXPORTS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /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 odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib libz.lib /nologo /version:10 /dll /debug /machine:I386 /out:"Debug/zzip-1.dll" /pdbtype:sept /libpath:"d:\lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "zzip - Win32 Release"
+# Name "zzip - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\zzip\dir.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\err.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\file.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\info.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\plugin.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\stat.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\write.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\zip.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\zzip\__dirent.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\__mmap.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\_config.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\_msvc.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\conf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\file.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\format.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\lib.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\plugin.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\stdint.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\zzip.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# Begin Source File
+
+SOURCE=..\docs\README.MSVC6
+# End Source File
+# End Target
+# End Project
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc6/zziplib.dsp b/Build/source/libs/zziplib/zziplib-src/msvc6/zziplib.dsp
new file mode 100644
index 00000000000..ac5b7eab754
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc6/zziplib.dsp
@@ -0,0 +1,172 @@
+# Microsoft Developer Studio Project File - Name="zziplib" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=zziplib - 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 "zziplib.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 "zziplib.mak" CFG="zziplib - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "zziplib - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "zziplib - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "zziplib - 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/zziplib"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I ".." /I "d:\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD BASE RSC /l 0x41d /d "NDEBUG"
+# ADD RSC /l 0x41d /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ELSEIF "$(CFG)" == "zziplib - 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/zziplib"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /I "d:\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /FD /GZ /c
+# ADD BASE RSC /l 0x41d /d "_DEBUG"
+# ADD RSC /l 0x41d /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ENDIF
+
+# Begin Target
+
+# Name "zziplib - Win32 Release"
+# Name "zziplib - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "c;cpp"
+# Begin Source File
+
+SOURCE="..\zzip\dir.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\err.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\file.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\info.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\plugin.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\stat.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\write.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\zip.c"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h"
+# Begin Source File
+
+SOURCE="..\zzip\__dirent.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\__mmap.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\_config.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\_msvc.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\conf.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\file.h"
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\format.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\lib.h
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\plugin.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzip\stdint.h"
+# End Source File
+# Begin Source File
+
+SOURCE=..\zzip\zzip.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\docs\README.MSVC6
+# End Source File
+# End Target
+# End Project
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc6/zziplib.dsw b/Build/source/libs/zziplib/zziplib-src/msvc6/zziplib.dsw
new file mode 100644
index 00000000000..5c7e1766bca
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc6/zziplib.dsw
@@ -0,0 +1,116 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "zzcat"=".\zzcat.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name zziplib
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "zzdir"=".\zzdir.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name zziplib
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "zzip"=".\zzip.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "zziplib"=".\zziplib.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "zziptest"=".\zziptest.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name zziplib
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "zzipwrap"=".\zzipwrap.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name zziplib
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "zzobfuscated"=".\zzobfuscated.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name zziplib
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc6/zziptest.dsp b/Build/source/libs/zziplib/zziplib-src/msvc6/zziptest.dsp
new file mode 100644
index 00000000000..605265be925
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc6/zziptest.dsp
@@ -0,0 +1,98 @@
+# Microsoft Developer Studio Project File - Name="zziptest" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=zziptest - 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 "zziptest.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 "zziptest.mak" CFG="zziptest - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "zziptest - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "zziptest - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "zziptest - 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/zziptest"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x41d /d "NDEBUG"
+# ADD RSC /l 0x41d /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib zzip-1.lib libz.lib /nologo /version:10 /subsystem:console /machine:I386 /libpath:"d:\lib" /libpath:"Release"
+
+!ELSEIF "$(CFG)" == "zziptest - 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/zziptest"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x41d /d "_DEBUG"
+# ADD RSC /l 0x41d /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib zziplib.lib libz.lib /nologo /version:10 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"d:\lib" /libpath:"Debug"
+
+!ENDIF
+
+# Begin Target
+
+# Name "zziptest - Win32 Release"
+# Name "zziptest - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "c;cpp"
+# Begin Source File
+
+SOURCE=..\bins\zziptest.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h"
+# End Group
+# End Target
+# End Project
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc6/zzipwrap.dsp b/Build/source/libs/zziplib/zziplib-src/msvc6/zzipwrap.dsp
new file mode 100644
index 00000000000..4f6a328aac8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc6/zzipwrap.dsp
@@ -0,0 +1,106 @@
+# Microsoft Developer Studio Project File - Name="zzipwrap" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=zzipwrap - 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 "zzipwrap.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 "zzipwrap.mak" CFG="zzipwrap - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "zzipwrap - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "zzipwrap - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "zzipwrap - 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/zzipwrap"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x41d /d "NDEBUG"
+# ADD RSC /l 0x41d /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib zzip-1.lib libz.lib /nologo /version:10 /subsystem:console /machine:I386 /libpath:"d:\lib" /libpath:"Release"
+
+!ELSEIF "$(CFG)" == "zzipwrap - 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/zzipwrap"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x41d /d "_DEBUG"
+# ADD RSC /l 0x41d /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib zziplib.lib libz.lib /nologo /version:10 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"d:\lib" /libpath:"Debug"
+
+!ENDIF
+
+# Begin Target
+
+# Name "zzipwrap - Win32 Release"
+# Name "zzipwrap - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "c;cpp"
+# Begin Source File
+
+SOURCE=..\zzipwrap\wrap.c
+# End Source File
+# Begin Source File
+
+SOURCE="..\zzipwrap\zzipwrap.c"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h"
+# Begin Source File
+
+SOURCE=..\zzipwrap\wrap.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc6/zzobfuscated.dsp b/Build/source/libs/zziplib/zziplib-src/msvc6/zzobfuscated.dsp
new file mode 100644
index 00000000000..566365cf4ac
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc6/zzobfuscated.dsp
@@ -0,0 +1,98 @@
+# Microsoft Developer Studio Project File - Name="zzobfuscated" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=zzobfuscated - 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 "zzobfuscated.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 "zzobfuscated.mak" CFG="zzobfuscated - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "zzobfuscated - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "zzobfuscated - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "zzobfuscated - 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/zzobfuscated"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x41d /d "NDEBUG"
+# ADD RSC /l 0x41d /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib zzip-1.lib libz.lib /nologo /version:10 /subsystem:console /machine:I386 /libpath:"d:\lib" /libpath:"Release"
+
+!ELSEIF "$(CFG)" == "zzobfuscated - 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/zzobfuscated"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x41d /d "_DEBUG"
+# ADD RSC /l 0x41d /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib zziplib.lib libz.lib /nologo /version:10 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"d:\lib" /libpath:"Debug"
+
+!ENDIF
+
+# Begin Target
+
+# Name "zzobfuscated - Win32 Release"
+# Name "zzobfuscated - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "c;cpp"
+# Begin Source File
+
+SOURCE=..\bins\zzobfuscated.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h"
+# End Group
+# End Target
+# End Project
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/README.TXT b/Build/source/libs/zziplib/zziplib-src/msvc7/README.TXT
new file mode 100644
index 00000000000..cb154e32ce3
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/README.TXT
@@ -0,0 +1,31 @@
+These project files were tested with the
+free Microsoft Visual C++ 2005 Express Edition.
+
+Visual C++ Express does NOT include the Win32 SDK Headers.
+They must be downloaded separately as documented in the
+installation instructions at Microsoft - consequently that
+extra installation must be referenced via a system variable:
+Set MSSdk=C:\Program Files\Microsoft Platform SDK
+
+In order to compile you need a valid Zlib SDK - you can
+download it from zlib.org in the archive zlib123-dll.zip -
+I had unpacked them to $(zziplibdir)/zlib inside the
+toplevel of the zziplib source tree. That SDK does ship
+with a "zlib1.dll" runtime and "zdll.lib" import library.
+
+The new Visual Studio has deprecated most of the Win32 API
+just as well as most of the Posix API. That provokes a lot
+of warning message in surplus of the many warning message
+that occur on every implicit conversion between signed and
+unsigned types. Other compilers are more clever about
+detecting real conversion issues, therefore they are not
+going to be "patched away" with an explicit conversion in
+the source files (I expect Microsoft to get it right somewhen).
+
+== Download Places ==
+download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/
+PSDK-x86.exe = Win32 SDK - online installer
+download.microsoft.com/download/A/9/1/A91D6B2B-A798-47DF-9C7E-A97854B7DD18/
+VC.iso = Visual C++ Express CD-image
+download.microsoft.com/download/C/6/F/C6F4733B-67C7-4C15-9F21-61F7A3167505/
+VCS.iso = Visual C# Express CD-image
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/pkzip.exe b/Build/source/libs/zziplib/zziplib-src/msvc7/pkzip.exe
new file mode 100755
index 00000000000..120625075c6
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/pkzip.exe
Binary files differ
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/test.zip b/Build/source/libs/zziplib/zziplib-src/msvc7/test.zip
new file mode 100644
index 00000000000..ce4770015f4
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/test.zip
Binary files differ
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/test1.zip b/Build/source/libs/zziplib/zziplib-src/msvc7/test1.zip
new file mode 100644
index 00000000000..c46015d9431
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/test1.zip
Binary files differ
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zip.exe b/Build/source/libs/zziplib/zziplib-src/msvc7/zip.exe
new file mode 100755
index 00000000000..2c5b268b47d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zip.exe
Binary files differ
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzcat.sln b/Build/source/libs/zziplib/zziplib-src/msvc7/zzcat.sln
new file mode 100644
index 00000000000..b959f0c92f8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzcat.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzcat.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc7/zzcat.vcproj
new file mode 100644
index 00000000000..a9d4809e91e
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzcat.vcproj
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zziptest"
+ ProjectGUID="{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zziptest-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zziptest.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zziptest-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\bins\zziptest.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzdir.sln b/Build/source/libs/zziplib/zziplib-src/msvc7/zzdir.sln
new file mode 100644
index 00000000000..b959f0c92f8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzdir.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzdir.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc7/zzdir.vcproj
new file mode 100644
index 00000000000..a6c40e2a8fa
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzdir.vcproj
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzdir"
+ ProjectGUID="{C118D86C-06E2-4949-B4F1-DB05C823C8E1}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzdir-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zziptest.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzdir-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\bins\zzdir.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzip.sln b/Build/source/libs/zziplib/zziplib-src/msvc7/zzip.sln
new file mode 100644
index 00000000000..33ffa4d9e36
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzip.sln
@@ -0,0 +1,69 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zzcat.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzcat", "zzipself.vcproj", "{0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipsetstub", "zzipsetstub.vcproj", "{D15BE737-CF23-4243-A8C4-DB5EE3F5689D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzdir", "zzdir.vcproj", "{C118D86C-06E2-4949-B4F1-DB05C823C8E1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziplib", "zziplib.vcproj", "{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipself", "zziptest.vcproj", "{8D0233CC-F821-4853-BE2A-B55B680A49E9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {D15BE737-CF23-4243-A8C4-DB5EE3F5689D} = {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipobfuscated", "zzobfuscated.vcproj", "{3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug|Win32.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug|Win32.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release|Win32.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release|Win32.Build.0 = Release|Win32
+ {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Release|Win32.ActiveCfg = Release|Win32
+ {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Release|Win32.Build.0 = Release|Win32
+ {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Release|Win32.ActiveCfg = Release|Win32
+ {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Release|Win32.Build.0 = Release|Win32
+ {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Release|Win32.ActiveCfg = Release|Win32
+ {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Release|Win32.Build.0 = Release|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.Build.0 = Debug|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.ActiveCfg = Release|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.Build.0 = Release|Win32
+ {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Release|Win32.ActiveCfg = Release|Win32
+ {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Release|Win32.Build.0 = Release|Win32
+ {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Release|Win32.ActiveCfg = Release|Win32
+ {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzip.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc7/zzip.vcproj
new file mode 100644
index 00000000000..77c4646d077
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzip.vcproj
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding = "Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.00"
+ Name="zzip"
+ ProjectGUID="{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}"
+ Keyword="Win32Proj">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="4"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+ MinimalRebuild="TRUE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="TRUE"
+ DebugInformationFormat="4"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="lib/zziplibd.lib"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ AdditionalIncludeDirectories="C:\lib\zziplib"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="4"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="TRUE"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ StringPooling="TRUE"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="TRUE"
+ DebugInformationFormat="3"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="lib/zziplib.lib"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
+ <File
+ RelativePath="..\zzip\dir.c">
+ </File>
+ <File
+ RelativePath="..\zzip\err.c">
+ </File>
+ <File
+ RelativePath="..\zzip\file.c">
+ </File>
+ <File
+ RelativePath="..\zzip\info.c">
+ </File>
+ <File
+ RelativePath="..\zzip\plugin.c">
+ </File>
+ <File
+ RelativePath="..\zzip\stat.c">
+ </File>
+ <File
+ RelativePath="..\zzip\zip.c">
+ </File>
+ </Filter>
+ <Filter
+ Name="Headerdateien"
+ Filter="h;hpp;hxx;hm;inl;inc">
+ <File
+ RelativePath="..\zzip\__debug.h">
+ </File>
+ <File
+ RelativePath="..\zzip\__dirent.h">
+ </File>
+ <File
+ RelativePath="..\zzip\__hints.h">
+ </File>
+ <File
+ RelativePath="..\zzip\__mmap.h">
+ </File>
+ <File
+ RelativePath="..\zzip\_config.h">
+ </File>
+ <File
+ RelativePath="..\zzip\_msvc.h">
+ </File>
+ <File
+ RelativePath="..\zzip\conf.h">
+ </File>
+ <File
+ RelativePath="..\zzip\file.h">
+ </File>
+ <File
+ RelativePath="..\zzip\format.h">
+ </File>
+ <File
+ RelativePath="..\zzip\lib.h">
+ </File>
+ <File
+ RelativePath="..\zzip\plugin.h">
+ </File>
+ <File
+ RelativePath="..\zzip\stdint.h">
+ </File>
+ <File
+ RelativePath="..\zzip\zzip.h">
+ </File>
+ </Filter>
+ <Filter
+ Name="Ressourcendateien"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ </Filter>
+ <File
+ RelativePath="ReadMe.txt">
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zziplib.sln b/Build/source/libs/zziplib/zziplib-src/msvc7/zziplib.sln
new file mode 100644
index 00000000000..9515ef61985
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zziplib.sln
@@ -0,0 +1,19 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziplib", "zziplib.vcproj", "{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.Build.0 = Debug|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.ActiveCfg = Release|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zziplib.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc7/zziplib.vcproj
new file mode 100644
index 00000000000..6c5f71c06c5
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zziplib.vcproj
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zziplib"
+ ProjectGUID="{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../zlib/include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ AdditionalIncludeDirectories="C:\lib\zziplib"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalDependencies="zdll.lib"
+ OutputFile="zziplib-$(ConfigurationName).lib"
+ AdditionalLibraryDirectories="../zlib/lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../zlib/include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalDependencies="zdll.lib"
+ OutputFile="zziplib-$(ConfigurationName).lib"
+ AdditionalLibraryDirectories="../zlib/lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\zzip\dir.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\err.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\file.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\info.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\plugin.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\stat.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\zip.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Headerdateien"
+ Filter="h;hpp;hxx;hm;inl;inc"
+ >
+ <File
+ RelativePath="..\zzip\__debug.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\__dirent.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\__hints.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\__mmap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\_config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\_msvc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\conf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\file.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\format.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\lib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\plugin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\stdint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\zzip.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ressourcendateien"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="ReadMe.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.bat b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.bat
new file mode 100755
index 00000000000..b0bc8688def
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.bat
@@ -0,0 +1,18 @@
+@echo off
+rem DOS pkzip.exe does not work under WinXP !
+rem instead using infozip zip.exe
+
+IF EXIST zzipselftest%1.zip del zzipselftest%1.zip
+echo zip -0 zzipselftest%1.zip zzipself%1.exe
+ zip -0 zzipselftest%1.zip zzipself%1.exe
+echo zip -9 zzipselftest%1.zip zzipself.txt
+ zip -9 zzipselftest%1.zip zzipself.txt
+echo zzipsetstub%1.exe zzipselftest%1.zip zzipself%1.exe
+ zzipsetstub%1.exe zzipselftest%1.zip zzipself%1.exe
+echo rename zzipselftest%1.zip zzipselftest%1.exe
+IF EXIST zzipselftest%1.exe del zzipselftest%1.exe
+ ren zzipselftest%1.zip zzipselftest%1.exe
+
+REM testrun:
+echo now testing zzipselftest%1.exe
+zzipselftest%1.exe zzipself.txt
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.sln b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.sln
new file mode 100644
index 00000000000..b959f0c92f8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.txt b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.txt
new file mode 100644
index 00000000000..f423a018e29
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.txt
@@ -0,0 +1,9 @@
+HOWTO create an exe-file with an appended zip-resource - file
+
+we assume an imaginary game called "tetris.exe"
+1. create a zip-archive "tetris.zip" and store "tetris.exe" with NO COMPRESSION (-e0 option in pkzip)
+2. add your data-files, images and sounds to "tetris.zip" with arbitrary compression
+3. call "setstub tetris.zip tetris.exe"
+4. rename tetris.zip into tetris.exe
+
+now your app should be able read data from itself. \ No newline at end of file
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.vcproj
new file mode 100644
index 00000000000..a2ecfa151c4
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipself.vcproj
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzcat"
+ ProjectGUID="{0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzcat-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zziptest.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzcat-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\bins\zzcat.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzipsetstub.sln b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipsetstub.sln
new file mode 100644
index 00000000000..bf4bbb5001d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipsetstub.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipsetstub", "zzipsetstub.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzipsetstub.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipsetstub.vcproj
new file mode 100644
index 00000000000..a2d58135ca2
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzipsetstub.vcproj
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzipsetstub"
+ ProjectGUID="{D15BE737-CF23-4243-A8C4-DB5EE3F5689D}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipsetstub-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zzipsetstub.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipsetstub-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\test\zzipsetstub.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zziptest.sln b/Build/source/libs/zziplib/zziplib-src/msvc7/zziptest.sln
new file mode 100644
index 00000000000..b959f0c92f8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zziptest.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zziptest.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc7/zziptest.vcproj
new file mode 100644
index 00000000000..b34253efbda
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zziptest.vcproj
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzipself"
+ ProjectGUID="{8D0233CC-F821-4853-BE2A-B55B680A49E9}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipself-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zziptest.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="zzipself.bat -$(ConfigurationName)"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipself-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="zzipself.bat -$(ConfigurationName)"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\test\zzipself.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzobfuscated.sln b/Build/source/libs/zziplib/zziplib-src/msvc7/zzobfuscated.sln
new file mode 100644
index 00000000000..b959f0c92f8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzobfuscated.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc7/zzobfuscated.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc7/zzobfuscated.vcproj
new file mode 100644
index 00000000000..e2de1c1008b
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc7/zzobfuscated.vcproj
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzipobfuscated"
+ ProjectGUID="{3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipobfuscated-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zziptest.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipobfuscated-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\bins\zzobfuscated.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/README.TXT b/Build/source/libs/zziplib/zziplib-src/msvc8/README.TXT
new file mode 100644
index 00000000000..3733cb4010c
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/README.TXT
@@ -0,0 +1,61 @@
+These project files were tested with the
+free Microsoft Visual C++ 2005 Express Edition.
+
+Visual C++ Express does NOT include the Win32 SDK Headers.
+They must be downloaded separately as documented in the
+installation instructions at Microsoft - consequently that
+extra installation must be referenced via a system variable:
+Set MSSdk=C:\Program Files\Microsoft Platform SDK
+
+In order to compile you need a valid Zlib SDK - you can
+download it from zlib.org in the archive zlib123-dll.zip -
+I had unpacked them to $(zziplibdir)/zlib inside the
+toplevel of the zziplib source tree. That SDK does ship
+with a "zlib1.dll" runtime and "zdll.lib" import library.
+
+The new Visual Studio has deprecated most of the Win32 API
+just as well as most of the Posix API. That provokes a lot
+of warning message in surplus of the many warning message
+that occur on every implicit conversion between signed and
+unsigned types. Other compilers are more clever about
+detecting real conversion issues, therefore they are not
+going to be "patched away" with an explicit conversion in
+the source files (I expect Microsoft to get it right somewhen).
+
+== Download Places ==
+http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+= central place referenced a lot in the MSDN but the link is broken
+
+http://download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/PSDK-x86.exe
+http://download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/PSDK-amd64.exe
+http://download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/PSDK-ia64.exe
+= Windows Server 2003 SP1 Platform SDK Web Install (win32/win64/.. - but SDK for all CPU types)
+
+http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-x86.exe
+http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-ia64.exe
+http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-amd64.exe
+= Windows Server 2003 R2 Platform SDK Web Install (win32/win64/.. - but SDK for all CPU types)
+
+http://download.microsoft.com/download/A/9/1/A91D6B2B-A798-47DF-9C7E-A97854B7DD18/VC.iso
+= Visual C++ Express CD-image
+http://download.microsoft.com/download/C/6/F/C6F4733B-67C7-4C15-9F21-61F7A3167505/VCS.iso
+= Visual C# Express CD-image
+
+http://zlib.net/zlib123-dll.zip (broken)
+http://zlib.net/zlib125-dll.zip
+= unpack one of them into zzip-0/zlib (if using the subversion checkout)
+
+== Environment Variables ==
+On Windows-7 the environment variables can be found in the
+control panel > system information > change name settings > extras tab > click button
+
+== Debug Variables ==
+To run the zziptest for debugging the solution file has now a setting
+in Properties > Debugging > Environment > PATH=$(InputDir)\..\zlib\
+so that the zlib1.dll can be found. This needs to be adapted if the
+zlib123-dll.zip was unpackaged somewhere else.
+
+== Compiling Error ==
+'can not delete debug/*.idb' - occurs when running MSVC in a VMWare box
+pointing to a Unix drive; create a symlink `ln -s Debug debug` to fix it.
+There are Pre/Post-Build Rules to remove *.idb but sometimes its left over.
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/test.zip b/Build/source/libs/zziplib/zziplib-src/msvc8/test.zip
new file mode 100644
index 00000000000..ce4770015f4
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/test.zip
Binary files differ
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/test1.zip b/Build/source/libs/zziplib/zziplib-src/msvc8/test1.zip
new file mode 100644
index 00000000000..c46015d9431
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/test1.zip
Binary files differ
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zip.exe b/Build/source/libs/zziplib/zziplib-src/msvc8/zip.exe
new file mode 100755
index 00000000000..2c5b268b47d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zip.exe
Binary files differ
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzcat.sln b/Build/source/libs/zziplib/zziplib-src/msvc8/zzcat.sln
new file mode 100644
index 00000000000..b959f0c92f8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzcat.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzcat.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc8/zzcat.vcproj
new file mode 100644
index 00000000000..e75f3281f46
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzcat.vcproj
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zziptest"
+ ProjectGUID="{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="false"
+ AdditionalOptions="/NODEFAULTLIB:library"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zziptest-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zziptest.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/NODEFAULTLIB:library"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zziptest-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\bins\zziptest.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzdir.sln b/Build/source/libs/zziplib/zziplib-src/msvc8/zzdir.sln
new file mode 100644
index 00000000000..b959f0c92f8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzdir.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzdir.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc8/zzdir.vcproj
new file mode 100644
index 00000000000..8053aae1187
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzdir.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzdir"
+ ProjectGUID="{C118D86C-06E2-4949-B4F1-DB05C823C8E1}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzdir-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zziptest.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzdir-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\bins\zzdir.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzip.sln b/Build/source/libs/zziplib/zziplib-src/msvc8/zzip.sln
new file mode 100644
index 00000000000..9580f58e46b
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzip.sln
@@ -0,0 +1,81 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zzcat.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzcat", "zzipself.vcproj", "{0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipsetstub", "zzipsetstub.vcproj", "{D15BE737-CF23-4243-A8C4-DB5EE3F5689D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzdir", "zzdir.vcproj", "{C118D86C-06E2-4949-B4F1-DB05C823C8E1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziplib", "zziplib.vcproj", "{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipself", "zziptest.vcproj", "{8D0233CC-F821-4853-BE2A-B55B680A49E9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {D15BE737-CF23-4243-A8C4-DB5EE3F5689D} = {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipobfuscated", "zzobfuscated.vcproj", "{3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD} = {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipmmapped", "zzipmmapped.vcproj", "{E7474EF2-BF27-4482-B347-2075BEC6A0D4}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipfseeko", "zzipfseeko.vcproj", "{33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug|Win32.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug|Win32.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release|Win32.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release|Win32.Build.0 = Release|Win32
+ {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Release|Win32.ActiveCfg = Release|Win32
+ {0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}.Release|Win32.Build.0 = Release|Win32
+ {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Release|Win32.ActiveCfg = Release|Win32
+ {D15BE737-CF23-4243-A8C4-DB5EE3F5689D}.Release|Win32.Build.0 = Release|Win32
+ {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Release|Win32.ActiveCfg = Release|Win32
+ {C118D86C-06E2-4949-B4F1-DB05C823C8E1}.Release|Win32.Build.0 = Release|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.Build.0 = Debug|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.ActiveCfg = Release|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.Build.0 = Release|Win32
+ {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Release|Win32.ActiveCfg = Release|Win32
+ {8D0233CC-F821-4853-BE2A-B55B680A49E9}.Release|Win32.Build.0 = Release|Win32
+ {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Release|Win32.ActiveCfg = Release|Win32
+ {3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}.Release|Win32.Build.0 = Release|Win32
+ {E7474EF2-BF27-4482-B347-2075BEC6A0D4}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E7474EF2-BF27-4482-B347-2075BEC6A0D4}.Debug|Win32.Build.0 = Debug|Win32
+ {E7474EF2-BF27-4482-B347-2075BEC6A0D4}.Release|Win32.ActiveCfg = Release|Win32
+ {E7474EF2-BF27-4482-B347-2075BEC6A0D4}.Release|Win32.Build.0 = Release|Win32
+ {33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}.Debug|Win32.Build.0 = Debug|Win32
+ {33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}.Release|Win32.ActiveCfg = Release|Win32
+ {33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzip.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc8/zzip.vcproj
new file mode 100644
index 00000000000..77c4646d077
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzip.vcproj
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding = "Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.00"
+ Name="zzip"
+ ProjectGUID="{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}"
+ Keyword="Win32Proj">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="4"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+ MinimalRebuild="TRUE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="TRUE"
+ DebugInformationFormat="4"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="lib/zziplibd.lib"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ AdditionalIncludeDirectories="C:\lib\zziplib"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="4"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="TRUE"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ StringPooling="TRUE"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="TRUE"
+ DebugInformationFormat="3"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="lib/zziplib.lib"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
+ <File
+ RelativePath="..\zzip\dir.c">
+ </File>
+ <File
+ RelativePath="..\zzip\err.c">
+ </File>
+ <File
+ RelativePath="..\zzip\file.c">
+ </File>
+ <File
+ RelativePath="..\zzip\info.c">
+ </File>
+ <File
+ RelativePath="..\zzip\plugin.c">
+ </File>
+ <File
+ RelativePath="..\zzip\stat.c">
+ </File>
+ <File
+ RelativePath="..\zzip\zip.c">
+ </File>
+ </Filter>
+ <Filter
+ Name="Headerdateien"
+ Filter="h;hpp;hxx;hm;inl;inc">
+ <File
+ RelativePath="..\zzip\__debug.h">
+ </File>
+ <File
+ RelativePath="..\zzip\__dirent.h">
+ </File>
+ <File
+ RelativePath="..\zzip\__hints.h">
+ </File>
+ <File
+ RelativePath="..\zzip\__mmap.h">
+ </File>
+ <File
+ RelativePath="..\zzip\_config.h">
+ </File>
+ <File
+ RelativePath="..\zzip\_msvc.h">
+ </File>
+ <File
+ RelativePath="..\zzip\conf.h">
+ </File>
+ <File
+ RelativePath="..\zzip\file.h">
+ </File>
+ <File
+ RelativePath="..\zzip\format.h">
+ </File>
+ <File
+ RelativePath="..\zzip\lib.h">
+ </File>
+ <File
+ RelativePath="..\zzip\plugin.h">
+ </File>
+ <File
+ RelativePath="..\zzip\stdint.h">
+ </File>
+ <File
+ RelativePath="..\zzip\zzip.h">
+ </File>
+ </Filter>
+ <Filter
+ Name="Ressourcendateien"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ </Filter>
+ <File
+ RelativePath="ReadMe.txt">
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzipfseeko.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipfseeko.vcproj
new file mode 100755
index 00000000000..34924fde00e
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipfseeko.vcproj
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzipfseeko"
+ ProjectGUID="{33B3D8EF-5CF8-4B3A-93B5-5A9B262AB8A2}"
+ RootNamespace="zzipfseeko"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalDependencies="zdll.lib"
+ AdditionalLibraryDirectories="../msvc/zlib/lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="2"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zlib.dll"
+ AdditionalLibraryDirectories="../msvc/zlib/lib"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\zzip\fetch.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\fseeko.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\zzip\fetch.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\fseeko.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zziplib.sln b/Build/source/libs/zziplib/zziplib-src/msvc8/zziplib.sln
new file mode 100644
index 00000000000..9515ef61985
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zziplib.sln
@@ -0,0 +1,19 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziplib", "zziplib.vcproj", "{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Debug|Win32.Build.0 = Debug|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.ActiveCfg = Release|Win32
+ {CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zziplib.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc8/zziplib.vcproj
new file mode 100644
index 00000000000..f9570848dda
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zziplib.vcproj
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zziplib"
+ ProjectGUID="{CB440073-2ED3-48CE-A1A1-B6EACB3A44BD}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ AdditionalIncludeDirectories="C:\lib\zziplib"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalDependencies="zdll.lib"
+ OutputFile="zziplib-$(ConfigurationName).lib"
+ AdditionalLibraryDirectories="../msvc/zlib/lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalDependencies="zdll.lib"
+ OutputFile="zziplib-$(ConfigurationName).lib"
+ AdditionalLibraryDirectories="../msvc/zlib/lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\zzip\dir.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\err.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\fetch.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\file.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\info.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\plugin.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\stat.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\zip.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Headerdateien"
+ Filter="h;hpp;hxx;hm;inl;inc"
+ >
+ <File
+ RelativePath="..\zzip\__debug.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\__dirent.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\__hints.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\__mmap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\_config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\_msvc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\conf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\fetch.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\file.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\format.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\lib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\plugin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\stdint.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\zzip.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Ressourcendateien"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="ReadMe.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzipmmapped.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipmmapped.vcproj
new file mode 100755
index 00000000000..3edd7835c81
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipmmapped.vcproj
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzipmmapped"
+ ProjectGUID="{E7474EF2-BF27-4482-B347-2075BEC6A0D4}"
+ RootNamespace="zzipmmapped"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="2"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zdll.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../msvc/zlib/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="kernel32.lib $(NoInherit)"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\zzip\fetch.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\memdisk.c"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\mmapped.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\zzip\fetch.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\memdisk.h"
+ >
+ </File>
+ <File
+ RelativePath="..\zzip\mmapped.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.bat b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.bat
new file mode 100755
index 00000000000..b0bc8688def
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.bat
@@ -0,0 +1,18 @@
+@echo off
+rem DOS pkzip.exe does not work under WinXP !
+rem instead using infozip zip.exe
+
+IF EXIST zzipselftest%1.zip del zzipselftest%1.zip
+echo zip -0 zzipselftest%1.zip zzipself%1.exe
+ zip -0 zzipselftest%1.zip zzipself%1.exe
+echo zip -9 zzipselftest%1.zip zzipself.txt
+ zip -9 zzipselftest%1.zip zzipself.txt
+echo zzipsetstub%1.exe zzipselftest%1.zip zzipself%1.exe
+ zzipsetstub%1.exe zzipselftest%1.zip zzipself%1.exe
+echo rename zzipselftest%1.zip zzipselftest%1.exe
+IF EXIST zzipselftest%1.exe del zzipselftest%1.exe
+ ren zzipselftest%1.zip zzipselftest%1.exe
+
+REM testrun:
+echo now testing zzipselftest%1.exe
+zzipselftest%1.exe zzipself.txt
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.sln b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.sln
new file mode 100644
index 00000000000..b959f0c92f8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.txt b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.txt
new file mode 100644
index 00000000000..f423a018e29
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.txt
@@ -0,0 +1,9 @@
+HOWTO create an exe-file with an appended zip-resource - file
+
+we assume an imaginary game called "tetris.exe"
+1. create a zip-archive "tetris.zip" and store "tetris.exe" with NO COMPRESSION (-e0 option in pkzip)
+2. add your data-files, images and sounds to "tetris.zip" with arbitrary compression
+3. call "setstub tetris.zip tetris.exe"
+4. rename tetris.zip into tetris.exe
+
+now your app should be able read data from itself. \ No newline at end of file
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.vcproj
new file mode 100644
index 00000000000..ef6be9edaea
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipself.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzcat"
+ ProjectGUID="{0FBB8EFD-652C-4BD6-B165-6C65357FEDFC}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzcat-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zziptest.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzcat-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\bins\zzcat.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzipsetstub.sln b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipsetstub.sln
new file mode 100644
index 00000000000..bf4bbb5001d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipsetstub.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zzipsetstub", "zzipsetstub.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzipsetstub.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipsetstub.vcproj
new file mode 100644
index 00000000000..d255f56d4d6
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzipsetstub.vcproj
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzipsetstub"
+ ProjectGUID="{D15BE737-CF23-4243-A8C4-DB5EE3F5689D}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipsetstub-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zzipsetstub.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipsetstub-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\test\zzipsetstub.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zziptest.sln b/Build/source/libs/zziplib/zziplib-src/msvc8/zziptest.sln
new file mode 100644
index 00000000000..b959f0c92f8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zziptest.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zziptest.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc8/zziptest.vcproj
new file mode 100644
index 00000000000..7dc3123374a
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zziptest.vcproj
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzipself"
+ ProjectGUID="{8D0233CC-F821-4853-BE2A-B55B680A49E9}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipself-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zziptest.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="zzipself.bat -$(ConfigurationName)"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipself-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="zzipself.bat -$(ConfigurationName)"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\test\zzipself.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzobfuscated.sln b/Build/source/libs/zziplib/zziplib-src/msvc8/zzobfuscated.sln
new file mode 100644
index 00000000000..b959f0c92f8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzobfuscated.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zziptest", "zziptest.vcproj", "{FCEF4E99-72DB-4422-95BB-3C83673B66E9}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.ActiveCfg = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Debug.Build.0 = Debug|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.ActiveCfg = Release|Win32
+ {FCEF4E99-72DB-4422-95BB-3C83673B66E9}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/zziplib/zziplib-src/msvc8/zzobfuscated.vcproj b/Build/source/libs/zziplib/zziplib-src/msvc8/zzobfuscated.vcproj
new file mode 100644
index 00000000000..cd08dd227d8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/msvc8/zzobfuscated.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="zzipobfuscated"
+ ProjectGUID="{3EC53ADE-2D87-4023-B34A-BA1CF0EA0F01}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipobfuscated-$(ConfigurationName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zziptest.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..;../msvc/zlib/include;&quot;$(MSSdk)/Include&quot;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="zziplib-$(ConfigurationName).lib"
+ OutputFile="zzipobfuscated-$(ConfigurationName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories=""
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ Description="del $(ConfigurationName)\vc80.idb"
+ CommandLine="del $(ConfigurationName)\vc80.idb"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Quelldateien"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\bins\zzobfuscated.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="zziplib.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/zziplib/zziplib-src/ports/symbian-S60/zziplib-symbian.zip b/Build/source/libs/zziplib/zziplib-src/ports/symbian-S60/zziplib-symbian.zip
new file mode 100644
index 00000000000..cb8f83b4df8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/ports/symbian-S60/zziplib-symbian.zip
Binary files differ
diff --git a/Build/source/libs/zziplib/zziplib-src/test/CMakeLists.txt b/Build/source/libs/zziplib/zziplib-src/test/CMakeLists.txt
new file mode 100644
index 00000000000..f0f7a953281
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/test/CMakeLists.txt
@@ -0,0 +1,82 @@
+cmake_minimum_required (VERSION 3.1)
+project(zziptest VERSION "0.13.71" LANGUAGES C)
+
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE Release)
+endif(NOT CMAKE_BUILD_TYPE)
+
+include ( GNUInstallDirs )
+include ( FindPkgConfig )
+
+# options ########################################################
+option(BUILD_SHARED_LIBS "Build a shared library" ON)
+option(BUILD_STATIC_LIBS "Build the static library" OFF)
+option(BUILD_TESTS "Build test programs" OFF)
+option(MSVC_STATIC_RUNTIME "Build with static runtime libs (/MT)" ON)
+
+# Zlib library needed
+find_package ( ZLIB REQUIRED )
+# pkg_search_module ( ZZIP zzip )
+find_package ( PythonInterp 3.5 REQUIRED )
+find_package ( UnixCommands REQUIRED ) # bash cp mv rm gzip tar
+find_program ( MKZIP zip)
+
+set(EXEEXT ${CMAKE_EXECUTABLE_SUFFIX})
+set(README ${CMAKE_SOURCE_DIR}/README)
+set(PY ${PYTHON_EXECUTABLE})
+set(srcdir ${CMAKE_CURRENT_SOURCE_DIR})
+set(topdir ${CMAKE_SOURCE_DIR})
+
+# targets ########################################################
+add_executable(zzipself zzipself.c)
+add_executable(zzipsetstub zzipsetstub.c)
+
+target_link_libraries(zzipself libzzip ZLIB::ZLIB)
+target_link_libraries(zzipsetstub libzzip ZLIB::ZLIB)
+
+target_include_directories(zzipself PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(zzipsetstub PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+
+if(CMAKE_GENERATOR MATCHES "Makefiles")
+add_custom_command(OUTPUT zzipshowme${EXEEXT}
+ COMMAND rm -f test
+ COMMAND ln -s . test
+ COMMAND ${MKZIP} -0 -j $@ zzipself${EXEEXT}
+ COMMAND ${MKZIP} -9 -j $@ ${README}
+ COMMAND test -s $@ || cp test2.zip $@ || true
+ COMMAND test ! -f $@.zip || mv $@.zip $@
+ COMMAND ./zzipsetstub${EXEEXT} $@ zzipself${EXEEXT}
+ COMMAND chmod +x $@
+ DEPENDS zzipself zzipsetstub)
+add_custom_target(sfx ALL DEPENDS zzipshowme${EXEEXT})
+endif()
+
+add_custom_target(tests
+ COMMAND ${PY} ${srcdir}/zziptests.py --exeext=${EXEEXT} --topsrcdir=${topdir} -v ${TESTFLAGS}
+ DEPENDS ../bins/zzcat ../bins/zzdir ../bins/zziptest ../bins/zzxorcat ../bins/zzxorcopy)
+add_custom_command(OUTPUT ../bins/zzcat COMMMAND cd ../bins && $(MAKE) zzcat)
+add_custom_command(OUTPUT ../bins/zzdir COMMMAND cd ../bins && $(MAKE) zzdir)
+add_custom_command(OUTPUT ../bins/zziptest COMMMAND cd ../bins && $(MAKE) zziptest)
+add_custom_command(OUTPUT ../bins/zzxorcat COMMMAND cd ../bins && $(MAKE) zzxorcat)
+add_custom_command(OUTPUT ../bins/zzxorcopy COMMMAND cd ../bins && $(MAKE) zzxorcopy)
+
+add_custom_command(OUTPUT test0.zip
+ COMMAND ${BASH} -c "test -d tmp || mkdir tmp"
+ COMMAND ${CP} ${README} tmp/README
+ COMMAND ${BASH} -c "cd tmp && ${MKZIP} ../test0.zip README"
+ COMMAND ${CP} test0.zip test.zip
+ BYPRODUCTS test.zip
+ VERBATIM)
+add_custom_target(testzips ALL DEPENDS test0.zip)
+
+add_custom_target(checks
+ COMMAND ${BASH} -c "../bins/zzcat test/README > test.out"
+ COMMAND ${BASH} -c "if diff test.out ${README} >/dev/null \
+ ; then rm test.out ; echo check OK; true \
+ ; else rm test.out ; echo check FAIL ; false; fi"
+ DEPENDS ../bins/zzcat test0.zip
+ VERBATIM)
+add_custom_target(check DEPENDS checks tests)
+
+# install ########################################################
+# - nothing -
diff --git a/Build/source/libs/zziplib/zziplib-src/test/Makefile.am b/Build/source/libs/zziplib/zziplib-src/test/Makefile.am
new file mode 100644
index 00000000000..49b3fc04740
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/test/Makefile.am
@@ -0,0 +1,89 @@
+AUTOMAKE_OPTIONS = 1.4 foreign
+AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2
+DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir)
+DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4
+
+EXTRA_DIST = test.zip zziptests.py
+DISTCLEANFILES = test*.dat test0.zip test1.zip test2.zip test3.zip
+
+zzcat = ../bins/zzcat$(EXEEXT)
+zzdir = ../bins/zzdir$(EXEEXT)
+zziptest = ../bins/zziptest$(EXEEXT)
+zzxorcat = ../bins/zzxorcat$(EXEEXT)
+zzxordir = ../bins/zzxordir$(EXEEXT)
+zzxorcopy = ../bins/zzxorcopy$(EXEEXT)
+
+$(zzcat) $(zzdir) $(zziptest) $(zzxorcat) $(zzxordir) $(xorcopy) : \
+ @top_srcdir@/bins/*.c @top_srcdir@/zzip/*.c
+ (cd ../bins && $(MAKE))
+
+# -------------------------------------------------------------------
+NULL=/dev/null
+README = $(top_srcdir)/README
+testdatadir = $(top_builddir)/testdata.d
+
+testzip testzips : test.zip test1.zip test2.zip test3.zip
+
+test0.zip: $(README)
+ - test -d tmp || mkdir tmp
+ - cp $(README) tmp/README
+ - rm -f $@
+ - cd tmp && $(MKZIP) ../test0.zip README
+ - rm -r tmp
+ test -s test0.zip && cp -v test0.zip $(srcdir)/test.zip
+
+test.zip: $(README)
+ - $(MAKE) test0.zip
+ - test -s $@ || cp $(srcdir)/test.zip $@
+
+# -------------------------------------------------------------------
+
+sfxtests = @ZIPTESTS@ check-sfx
+newtests = @ZIPTESTS@ check-tests
+
+check-local: check-readme $(sfxtests) $(newtests)
+
+check-tests: tests
+tests:
+ @ test -f zziptests.py || ln -s -v $(srcdir)/zziptests.py . || cp -v $(srcdir)/zziptests.py .
+ $(PYTHON) zziptests.py --exeext "$(EXEEXT)" --topsrcdir "$(top_srcdir)"
+test_%:
+ @ test -f zziptests.py || ln -s -v $(srcdir)/zziptests.py . || cp -v $(srcdir)/zziptests.py .
+ $(PYTHON) zziptests.py $@ -vvvv --exeext "$(EXEEXT)" --topsrcdir "$(top_srcdir)"
+
+check-readme : $(zzcat) test.zip
+ @ test -f test.zip || $(MAKE) test0.zip
+ test -s test.zip || cp $(srcdir)/test.zip test.zip
+ @ echo :$@: checking $(zzcat) test/README
+ @ $(zzcat) test/README >test.out
+ @ if diff test.out $(README) >$(NULL) \
+ ; then rm test.out ; echo check OK ; true \
+ ; else rm test.out ; echo check FAIL ; false ; fi
+
+# -------------------------------------------------------------------
+
+noinst_PROGRAMS = zzipself zzipsetstub
+
+zzipself_LDFLAGS = @ZZIPLIB_LDFLAGS@
+zzipself_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
+
+../zzip/libzzip.la : @top_srcdir@/zzip/*.c
+ (cd ../zzip && $(MAKE) `basename $@`)
+
+zzshowme$(EXEEXT) : zzipself$(EXEEXT) zzipsetstub$(EXEEXT)
+ $(MKZIP) -0 -j $@ .libs/zzipself$(EXEEXT)
+ $(MKZIP) -9 -j $@ $(README)
+ - test -s $@ || cp test2.zip $@
+ test ! -f $@.zip || mv $@.zip $@
+ ./zzipsetstub $@ .libs/zzipself$(EXEEXT)
+ - chmod +x $@
+
+check-sfx : zzshowme$(EXEEXT)
+ echo :$@: "./zzshowme readme >readme.out 2>readme.err"
+ export LD_LIBRARY_PATH="../zzip/.libs:$$LD_LIBRARY_PATH" \
+ ; ./zzshowme readme >readme.out 2>readme.err ; true
+ @ echo 'diff readme.out $(README) || grep "libzzip-" readme.err' \
+ ; if test -s readme.out ; then diff readme.out $(README) \
+ ; else grep "libzzip-" readme.err || echo "readme.out is empty!" ; fi
+ rm readme.out readme.err
+
diff --git a/Build/source/libs/zziplib/zziplib-src/test/Makefile.in b/Build/source/libs/zziplib/zziplib-src/test/Makefile.in
new file mode 100644
index 00000000000..9d7298789ee
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/test/Makefile.in
@@ -0,0 +1,735 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+noinst_PROGRAMS = zzipself$(EXEEXT) zzipsetstub$(EXEEXT)
+subdir = test
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
+ $(top_srcdir)/m4/ac_set_default_paths_system.m4 \
+ $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \
+ $(top_srcdir)/m4/acx_restrict.m4 \
+ $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \
+ $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \
+ $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \
+ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
+ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
+ $(top_srcdir)/m4/ax_check_enable_debug.m4 \
+ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
+ $(top_srcdir)/m4/ax_expand_prefix.m4 \
+ $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
+ $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
+ $(top_srcdir)/m4/ax_pax_tar.m4 \
+ $(top_srcdir)/m4/ax_prefix_config_h.m4 \
+ $(top_srcdir)/m4/ax_set_version_info.m4 \
+ $(top_srcdir)/m4/ax_spec_file.m4 \
+ $(top_srcdir)/m4/ax_spec_package_version.m4 \
+ $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \
+ $(top_srcdir)/m4/ax_warning_default_pkgconfig.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/patch_libtool_on_darwin_zsh_overquoting.m4 \
+ $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \
+ $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+PROGRAMS = $(noinst_PROGRAMS)
+zzipself_SOURCES = zzipself.c
+zzipself_OBJECTS = zzipself.$(OBJEXT)
+zzipself_DEPENDENCIES = ../zzip/libzzip.la
+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 =
+zzipself_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(zzipself_LDFLAGS) $(LDFLAGS) -o $@
+zzipsetstub_SOURCES = zzipsetstub.c
+zzipsetstub_OBJECTS = zzipsetstub.$(OBJEXT)
+zzipsetstub_LDADD = $(LDADD)
+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 =
+depcomp = $(SHELL) $(top_srcdir)/uses/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = zzipself.c zzipsetstub.c
+DIST_SOURCES = zzipself.c zzipsetstub.c
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/uses/depcomp \
+ $(top_srcdir)/uses/mkinstalldirs README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+ASAN_CFLAGS = @ASAN_CFLAGS@
+ASAN_LIBS = @ASAN_LIBS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONFIG_FILES = @CONFIG_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4
+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@
+GNUTAR = @GNUTAR@
+GREP = @GREP@
+GTAR = @GTAR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKZIP = @MKZIP@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PAX = @PAX@
+PAX_TAR_CREATE = @PAX_TAR_CREATE@
+PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+RANLIB = @RANLIB@
+RELEASE_INFO = @RELEASE_INFO@
+RESOLVES = @RESOLVES@
+SDL = @SDL@
+SDL_GENERATE = @SDL_GENERATE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+THREAD_SAFE = @THREAD_SAFE@
+VERSION = @VERSION@
+VERSION_INFO = @VERSION_INFO@
+XMLTO = @XMLTO@
+ZIPTESTS = @ZIPTESTS@
+ZLIB_INCL = @ZLIB_INCL@
+ZLIB_LDIR = @ZLIB_LDIR@
+ZLIB_VERSION = @ZLIB_VERSION@
+ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+aclocaldir = @aclocaldir@
+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@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgconfig_libdir = @pkgconfig_libdir@
+pkgconfig_libfile = @pkgconfig_libfile@
+pkgconfigdir = @pkgconfigdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = 1.4 foreign
+AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2
+DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir)
+EXTRA_DIST = test.zip zziptests.py
+DISTCLEANFILES = test*.dat test0.zip test1.zip test2.zip test3.zip
+zzcat = ../bins/zzcat$(EXEEXT)
+zzdir = ../bins/zzdir$(EXEEXT)
+zziptest = ../bins/zziptest$(EXEEXT)
+zzxorcat = ../bins/zzxorcat$(EXEEXT)
+zzxordir = ../bins/zzxordir$(EXEEXT)
+zzxorcopy = ../bins/zzxorcopy$(EXEEXT)
+
+# -------------------------------------------------------------------
+NULL = /dev/null
+README = $(top_srcdir)/README
+testdatadir = $(top_builddir)/testdata.d
+
+# -------------------------------------------------------------------
+sfxtests = @ZIPTESTS@ check-sfx
+newtests = @ZIPTESTS@ check-tests
+zzipself_LDFLAGS = @ZZIPLIB_LDFLAGS@
+zzipself_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign test/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+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
+
+zzipself$(EXEEXT): $(zzipself_OBJECTS) $(zzipself_DEPENDENCIES) $(EXTRA_zzipself_DEPENDENCIES)
+ @rm -f zzipself$(EXEEXT)
+ $(AM_V_CCLD)$(zzipself_LINK) $(zzipself_OBJECTS) $(zzipself_LDADD) $(LIBS)
+
+zzipsetstub$(EXEEXT): $(zzipsetstub_OBJECTS) $(zzipsetstub_DEPENDENCIES) $(EXTRA_zzipsetstub_DEPENDENCIES)
+ @rm -f zzipsetstub$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(zzipsetstub_OBJECTS) $(zzipsetstub_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzipself.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzipsetstub.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 $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \
+ clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+$(zzcat) $(zzdir) $(zziptest) $(zzxorcat) $(zzxordir) $(xorcopy) : \
+ @top_srcdir@/bins/*.c @top_srcdir@/zzip/*.c
+ (cd ../bins && $(MAKE))
+
+testzip testzips : test.zip test1.zip test2.zip test3.zip
+
+test0.zip: $(README)
+ - test -d tmp || mkdir tmp
+ - cp $(README) tmp/README
+ - rm -f $@
+ - cd tmp && $(MKZIP) ../test0.zip README
+ - rm -r tmp
+ test -s test0.zip && cp -v test0.zip $(srcdir)/test.zip
+
+test.zip: $(README)
+ - $(MAKE) test0.zip
+ - test -s $@ || cp $(srcdir)/test.zip $@
+
+check-local: check-readme $(sfxtests) $(newtests)
+
+check-tests: tests
+tests:
+ @ test -f zziptests.py || ln -s -v $(srcdir)/zziptests.py . || cp -v $(srcdir)/zziptests.py .
+ $(PYTHON) zziptests.py --exeext "$(EXEEXT)" --topsrcdir "$(top_srcdir)"
+test_%:
+ @ test -f zziptests.py || ln -s -v $(srcdir)/zziptests.py . || cp -v $(srcdir)/zziptests.py .
+ $(PYTHON) zziptests.py $@ -vvvv --exeext "$(EXEEXT)" --topsrcdir "$(top_srcdir)"
+
+check-readme : $(zzcat) test.zip
+ @ test -f test.zip || $(MAKE) test0.zip
+ test -s test.zip || cp $(srcdir)/test.zip test.zip
+ @ echo :$@: checking $(zzcat) test/README
+ @ $(zzcat) test/README >test.out
+ @ if diff test.out $(README) >$(NULL) \
+ ; then rm test.out ; echo check OK ; true \
+ ; else rm test.out ; echo check FAIL ; false ; fi
+
+../zzip/libzzip.la : @top_srcdir@/zzip/*.c
+ (cd ../zzip && $(MAKE) `basename $@`)
+
+zzshowme$(EXEEXT) : zzipself$(EXEEXT) zzipsetstub$(EXEEXT)
+ $(MKZIP) -0 -j $@ .libs/zzipself$(EXEEXT)
+ $(MKZIP) -9 -j $@ $(README)
+ - test -s $@ || cp test2.zip $@
+ test ! -f $@.zip || mv $@.zip $@
+ ./zzipsetstub $@ .libs/zzipself$(EXEEXT)
+ - chmod +x $@
+
+check-sfx : zzshowme$(EXEEXT)
+ echo :$@: "./zzshowme readme >readme.out 2>readme.err"
+ export LD_LIBRARY_PATH="../zzip/.libs:$$LD_LIBRARY_PATH" \
+ ; ./zzshowme readme >readme.out 2>readme.err ; true
+ @ echo 'diff readme.out $(README) || grep "libzzip-" readme.err' \
+ ; if test -s readme.out ; then diff readme.out $(README) \
+ ; else grep "libzzip-" readme.err || echo "readme.out is empty!" ; fi
+ rm readme.out readme.err
+
+# 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/Build/source/libs/zziplib/zziplib-src/test/README b/Build/source/libs/zziplib/zziplib-src/test/README
new file mode 100644
index 00000000000..1eed12c5fb0
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/test/README
@@ -0,0 +1,47 @@
+PROJECT
+ The zziplib provides read access to zipped files in a zip-archive,
+ using compression based solely on free algorithms provided by zlib.
+ It also provides a functionality to overlay the archive filesystem
+ with the filesystem of the operating system environment.
+
+AUTHOR
+ The project was originally written by Tomi Ollila, later largely
+ rewritten by Guido Draheim, and extended with contributions in
+ the years to follow. Guido Draheim <guidod@gmx.de> holds the full
+ copyright to the zziplib sources.
+
+COPYING
+ The zziplib may be used freely under the restrictions of the
+ GNU Lesser General Public License version 2 or later. Alternatively
+ the Mozilla Public license can be chosen. The sources are under
+ a dual license, as long as the MPL hint is not removed, the modified
+ files will be again under a dual license for the final recipient.
+
+LICENSING
+ If you can not use a dynalinked library according to LGPL rules,
+ then look at docs/copying.htm for a few hints. Generally the LGPL
+ has a way for staticlinking as well as the MPL has a way. Anyway,
+ special (paid) licenses can be negotiated with the copyright holder.
+
+HOMEPAGE
+ The zziplib project is hosted at SourceForge, the complete
+ documentation can be found at http://zziplib.sf.net - the
+ SourceForge servers are also used to distribute the sources
+ of the zziplib project. Releases are announced via the
+ freshmeat services on http://freshmeat.net/projects/zziplib
+
+INSTALLATION
+ The zziplib sources are built with gnu autotools and they should
+ be easy to install on unixish systems via the usual sequence of
+ `configure && make && make check && make install`. Many distributors
+ ship prebuilt packages e.g. in rpm format. Additionally there are
+ MSVC project files shipped along for usage with the Microsoft
+ VisualC series of compilers. There should be no problem either
+ when crosscompiling the zziplib for a third host platform.
+
+MAINTENANCE
+ The zziplib library is intentionally a lightweight interface to
+ zip files. The author take patches but please consider to put
+ complex extensions into separate modules rather than implanting them
+ right into the core of the library engine. All Patches and Bug Reports
+ should be sent to Guido Draheim <guidod@gmx.de>.
diff --git a/Build/source/libs/zziplib/zziplib-src/test/test.zip b/Build/source/libs/zziplib/zziplib-src/test/test.zip
new file mode 100644
index 00000000000..c0ee4a4a3a4
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/test/test.zip
Binary files differ
diff --git a/Build/source/libs/zziplib/zziplib-src/test/zzipself.c b/Build/source/libs/zziplib/zziplib-src/test/zzipself.c
new file mode 100644
index 00000000000..2cd115e75af
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/test/zzipself.c
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2000,2001,2002 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB License
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <zzip/zzip.h>
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+static const char usage[] =
+{
+ " zzipself <file>... \n"
+ " - prints the file to stdout, so you may want to redirect the output; \n"
+ " the file can be a normal file or an inflated part of a zip-archive, \n"
+ " however in this case the zip-archive happens to be the executed\n"
+ " binary itself, as if this program is a self-extract header of a zip. \n"
+ " zzipself README # same as # zzcat zzipself/README \n"
+};
+
+int
+main (int argc, char ** argv)
+{
+ int status = 0;
+ int argn;
+ if (argc <= 1)
+ {
+ printf (usage);
+ exit (0);
+ }
+
+ for (argn=1; argn < argc; argn++)
+ {
+ /* ZZIP_FILE* fp = zzip_fopen (argv[0]+"/"+argv[argn], "rbi"); */
+ /* .... = zzip_open (argv[0]+"/"+argv[argn], O_RDONLY|O_BINARY,
+ * ZZIP_CASELESS|ZZIP_ONLYZIP, ext, 0); */
+
+ static const char* ext[] = { "", ".exe", ".EXE", 0 };
+ ZZIP_FILE* fp;
+ ZZIP_DIR* zip = zzip_opendir_ext_io (argv[0],
+ ZZIP_CASELESS|ZZIP_ONLYZIP, ext, 0);
+
+ if (! zip) { perror(argv[0]); break; }
+
+ fp = zzip_file_open (zip, argv[argn], ZZIP_CASELESS);
+
+ if (! fp)
+ {
+ perror (argv[argn]);
+ continue;
+ }else{
+ char buf[17];
+ int n;
+
+ /* read chunks of 16 bytes into buf and print them to stdout */
+ while (0 < (n = zzip_read(fp, buf, 16)))
+ {
+ buf[n] = '\0';
+# ifdef STDOUT_FILENO
+ write (STDOUT_FILENO, buf, n);
+# else
+ fwrite (buf, 1, n, stdout);
+# endif
+ }
+
+ if (n == -1)
+ {
+ perror (argv[argn]);
+ status ++;
+ }
+ }
+
+ zzip_file_close (fp);
+ zzip_closedir (zip);
+ }
+
+ return status;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/test/zzipsetstub.c b/Build/source/libs/zziplib/zziplib-src/test/zzipsetstub.c
new file mode 100644
index 00000000000..5d5ad0c903b
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/test/zzipsetstub.c
@@ -0,0 +1,61 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+static const char usage[] =
+{
+ "zzipsetstub <zipfile> <zipsfxstub>... \n"
+ " overwrite the header of the zipfile with the sfxstub code.\n"
+ " this is usually the last step in creating a selfextract archive\n"
+ " or an application with all its data appended as a zip.\n"
+};
+
+int
+main (int argc, char ** argv)
+{
+ int argn;
+ if (argc <= 2)
+ {
+ printf (usage);
+ exit (0);
+ }
+
+ {
+ char buf[17]; int n;
+ char* zipfile = 0; FILE* zipFILE = 0;
+ char* sfxfile = 0; FILE* sfxFILE = 0;
+
+ for (argn=1; argn < argc; argn++)
+ {
+ if (argv[argn][0] == '-') continue;
+ if (! zipfile) { zipfile = argv[argn]; continue; }
+ if (! sfxfile) { sfxfile = argv[argn]; continue; }
+ /* superflous argument */
+ }
+
+ zipFILE = fopen (zipfile, "r+b");
+ if (! zipFILE) { perror (zipfile); return 1; }
+
+ sfxFILE = fopen (sfxfile, "rb");
+ if (! sfxFILE) { perror (sfxfile); return 1; }
+
+ while (0 < (n = fread(buf, 1, 16, sfxFILE)))
+ {
+ buf[n] = '\0';
+ fwrite (buf, 1, n, zipFILE);
+ }
+
+ if (n == -1)
+ perror (argv[argn]);
+
+ fclose (sfxFILE);
+ fclose (zipFILE);
+ }
+
+ return 0;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/test/zziptests.py b/Build/source/libs/zziplib/zziplib-src/test/zziptests.py
new file mode 100644
index 00000000000..03a8b6a234d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/test/zziptests.py
@@ -0,0 +1,3602 @@
+import unittest
+import subprocess
+import logging
+import inspect
+import sys
+import os
+import collections
+import shutil
+import random
+import re
+import errno
+from fnmatch import fnmatchcase as matches
+
+try:
+ from cStringIO import StringIO
+except ImportError:
+ from io import StringIO
+
+try:
+ from urllib import quote_plus, urlretrieve
+except ImportError:
+ from urllib.parse import quote_plus
+ from urllib.request import urlretrieve
+
+if sys.version[0] == '3':
+ basestring = str
+
+logg = logging.getLogger("test")
+
+topsrcdir = "../.."
+testdatadir = "testdata.d"
+readme = "README"
+mkzip = "zip"
+unzip = "unzip"
+exeext = ""
+bindir = os.path.join("..", "bins")
+
+def shell_string(command):
+ return " ".join(["'%s'" % arg.replace("'","\\'") for arg in command])
+
+def shell(command, shell=True, calls=False, cwd=None, env=None, lang=None, returncodes=None):
+ returncodes = returncodes or [ None, 0 ]
+ Shell = collections.namedtuple("Shell",["returncode", "output", "errors", "shell"])
+ if isinstance(command, basestring):
+ sh_command = command
+ command = [ command ]
+ else:
+ sh_command = shell_string(command)
+ if not env:
+ env = os.environ.copy()
+ if lang:
+ for name, value in env.items():
+ if name.startswith("LC_"):
+ env[name] = lang
+ env["LANG"] = lang # defines message format
+ env["LC_ALL"] = lang # other locale formats
+ zzip_libs = "/zzip/.libs"
+ zzip_cmds = command[0].split(" ")[0]
+ build_lib1 = os.path.dirname(os.path.realpath(zzip_cmds))
+ build_lib2 = os.path.dirname(build_lib1)
+ build_lib3 = os.path.dirname(build_lib2)
+ if os.path.isdir(build_lib1 + zzip_libs):
+ env["LD_LIBRARY_PATH"] = build_lib1 + zzip_libs
+ elif os.path.isdir(build_lib2 + zzip_libs):
+ env["LD_LIBRARY_PATH"] = build_lib2 + zzip_libs
+ elif os.path.isdir(build_lib3 + zzip_libs):
+ env["LD_LIBRARY_PATH"] = build_lib3 + zzip_libs
+ try:
+ output, errors = "", ""
+ if calls:
+ logg.debug("result from %s: %s", cwd and cwd+"/" or "shell", sh_command)
+ run = subprocess.Popen(command, shell=shell, cwd=cwd, env=env)
+ if run.returncode:
+ logg.warning("EXIT %s: %s", run.returncode, command)
+ run.wait()
+ else:
+ logg.debug("output from %s: %s", cwd and cwd+"/" or "shell", sh_command)
+ run = subprocess.Popen(command, shell=shell, cwd=cwd,
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=None, env=env)
+ if run.returncode:
+ logg.warning("EXIT %s: %s", run.returncode, command)
+ output, errors = run.communicate()
+ output = output.decode('utf-8')
+ errors = errors.decode('utf-8')
+ except:
+ logg.error("*E*: %s", sh_command)
+ for line in output.split("\n"):
+ if line:
+ logg.error("OUT: %s", line)
+ for line in errors.split("\n"):
+ if line:
+ logg.error("ERR: %s", line)
+ raise
+ if run.returncode not in returncodes:
+ logg.warning("*%02i: %s", run.returncode, sh_command)
+ for line in output.split("\n"):
+ if line:
+ logg.warning("OUT: %s", line)
+ for line in errors.split("\n"):
+ if line:
+ logg.warning("ERR: %s", line)
+ raise subprocess.CalledProcessError(run.returncode, sh_command, output)
+ else:
+ for line in output.split("\n"):
+ if line:
+ logg.debug("OUT: %s", line)
+ for line in errors.split("\n"):
+ if line:
+ logg.debug("ERR: %s", line)
+ return Shell(run.returncode, output, errors, sh_command)
+
+def get_caller_name():
+ frame = inspect.currentframe().f_back.f_back
+ return frame.f_code.co_name
+def get_caller_caller_name():
+ frame = inspect.currentframe().f_back.f_back.f_back
+ return frame.f_code.co_name
+
+def download_raw(base_url, filename, into, style = "?raw=true"):
+ return download(base_url, filename, into, style)
+def download(base_url, filename, into, style = ""):
+ data = "tmp.download"
+ if not os.path.isdir(data):
+ os.makedirs(data)
+ subname = quote_plus(base_url)
+ subdir = os.path.join(data, subname)
+ if not os.path.isdir(subdir):
+ os.makedirs(subdir)
+ subfile = os.path.join(subdir, filename)
+ if not os.path.exists(subfile) and "---" in base_url:
+ my_downloads = os.path.expanduser("~/Downloads")
+ srcfile = os.path.join(my_downloads, filename)
+ if os.path.exists(srcfile):
+ shutil.copy(srcfile, subfile)
+ if not os.path.exists(subfile):
+ logg.info("need %s", subfile)
+ try:
+ urlretrieve(base_url + "/" + filename + style, subfile)
+ except:
+ # Ensure zero-length file exists in case we couldn't
+ # download the file so that we won't try to
+ # re-download it.
+ open(subfile, 'a').close()
+ #
+ if not os.path.isdir(into):
+ os.makedirs(into)
+ intofile = os.path.join(into, filename)
+ shutil.copy(subfile, intofile)
+ logg.debug("copied %s -> %s", subfile, intofile)
+ return filename
+
+def output(cmd, shell=True):
+ run = subprocess.Popen(cmd, shell=shell, stdout=subprocess.PIPE)
+ out, err = run.communicate()
+ return out.decode('utf-8')
+def grep(pattern, lines):
+ if isinstance(lines, basestring):
+ lines = lines.split("\n")
+ for line in lines:
+ if re.search(pattern, line.rstrip()):
+ yield line.rstrip()
+def greps(lines, pattern):
+ return list(grep(pattern, lines))
+def all_errors(lines):
+ if isinstance(lines, basestring):
+ lines = lines.split("\n")
+ for line in lines:
+ if not line.strip():
+ continue
+ if "DEBUG:" in line:
+ continue
+ if "HINT:" in line:
+ continue
+ yield line.rstrip()
+def errors(lines):
+ return list(all_errors(lines))
+
+class ZZipTest(unittest.TestCase):
+ @property
+ def t(self):
+ if not os.path.isdir(testdatadir):
+ os.makedirs(testdatadir)
+ return testdatdir
+ @property
+ def s(self):
+ return topsrcdir
+ def src(self, name):
+ return os.path.join(self.s, name)
+ def assertErrorMessage(self, errors, errno):
+ self.assertIn(': ' + os.strerror(errno), errors)
+ def readme(self):
+ f = open(self.src(readme))
+ text = f.read()
+ f.close()
+ return text
+ def mkfile(self, name, content):
+ b = os.path.dirname(name)
+ if not os.path.isdir(b):
+ os.makedirs(b)
+ f = open(name, "w")
+ f.write(content)
+ f.close()
+ def bins(self, name):
+ if name == "unzip": return unzip
+ if name == "mkzip": return mkzip
+ exe = os.path.join(bindir, name)
+ if exeext: exe += exeext
+ return exe
+ def gdb_bins(self, name):
+ if name == "unzip": return unzip
+ if name == "mkzip": return mkzip
+ exe = os.path.join(bindir, ".libs", name)
+ if exeext: exe += exeext
+ return exe
+ def gentext(self, size):
+ random.seed(1234567891234567890)
+ result = StringIO()
+ old1 = ''
+ old2 = ''
+ for i in range(size):
+ while True:
+ x = random.choice(" abcdefghijklmnopqrstuvwxyz\n")
+ if x == old1 or x == old2: continue
+ old1 = old2
+ old2 = x
+ break
+ result.write(x)
+ return result.getvalue()
+ def caller_testname(self):
+ name = get_caller_caller_name()
+ x1 = name.find("_")
+ if x1 < 0: return name
+ x2 = name.find("_", x1+1)
+ if x2 < 0: return name
+ return name[:x2]
+ def testname(self, suffix = None):
+ name = self.caller_testname()
+ if suffix:
+ return name + "_" + suffix
+ return name
+ def testzip(self, testname = None):
+ testname = testname or self.caller_testname()
+ zipname = testname + ".zip"
+ return zipname
+ def testdir(self, testname = None):
+ testname = testname or self.caller_testname()
+ newdir = "tmp."+testname
+ if os.path.isdir(newdir):
+ shutil.rmtree(newdir)
+ os.makedirs(newdir)
+ return newdir
+ def rm_testdir(self, testname = None):
+ testname = testname or self.caller_testname()
+ newdir = "tmp."+testname
+ if os.path.isdir(newdir):
+ shutil.rmtree(newdir)
+ return newdir
+ def rm_testzip(self, testname = None):
+ testname = testname or self.caller_testname()
+ zipname = testname + ".zip"
+ if os.path.exists(zipname):
+ os.remove(zipname)
+ return True
+ ################################################################
+ def test_1000_make_test0_zip(self):
+ """ create a test.zip for later tests using standard 'zip'
+ It will fall back to a variant in the source code if 'zip'
+ is not installed on the build host. The content is just
+ the README file that we can check for equality later on. """
+ zipfile="test0.zip"
+ tmpdir="test0.tmp"
+ exe=self.bins("mkzip")
+ filename = os.path.join(tmpdir,"README")
+ filetext = self.readme()
+ self.mkfile(filename, filetext)
+ shell("{exe} ../{zipfile} README".format(**locals()), cwd=tmpdir)
+ self.assertGreater(os.path.getsize(zipfile), 10)
+ def test_10001_make_test1_zip(self):
+ """ create a test1.zip for later tests using standard 'zip'
+ It will fall back to a variant in the source code if 'zip'
+ is not installed on the build host. The archive has 10
+ generic files that we can check for their content later. """
+ zipfile="test1.zip"
+ tmpdir="test1.tmp"
+ exe=self.bins("mkzip")
+ for i in [1,2,3,4,5,6,7,8,9]:
+ filename = os.path.join(tmpdir,"file.%i" % i)
+ filetext = "file-%i\n" % i
+ self.mkfile(filename, filetext)
+ filename = os.path.join(tmpdir,"README")
+ filetext = self.readme()
+ self.mkfile(filename, filetext)
+ shell("{exe} ../{zipfile} ??*.* README".format(**locals()), cwd=tmpdir)
+ self.assertGreater(os.path.getsize(zipfile), 10)
+ def test_10002_make_test2_zip(self):
+ """ create a test2.zip for later tests using standard 'zip'
+ It will NOT fall back to a variant in the source code.
+ The archive has 100 generic files with known content. """
+ zipfile="test2.zip"
+ tmpdir="test2.tmp"
+ exe=self.bins("mkzip")
+ for i in range(100):
+ filename = os.path.join(tmpdir,"file.%02i" % i)
+ filetext = "file-%02i\n" % i
+ self.mkfile(filename, filetext)
+ filename = os.path.join(tmpdir,"README")
+ filetext = self.readme()
+ self.mkfile(filename, filetext)
+ shell("{exe} ../{zipfile} ??*.* README".format(**locals()), cwd=tmpdir)
+ self.assertGreater(os.path.getsize(zipfile), 10)
+ def test_10003_make_test3_zip(self):
+ """ create a test3.zip for later tests using standard 'zip'
+ It will NOT fall back to a variant in the source code.
+ The archive has 1000 generic files with known content. """
+ zipfile="test3.zip"
+ tmpdir="test3.tmp"
+ exe=self.bins("mkzip")
+ for i in range(1000):
+ filename = os.path.join(tmpdir,"file.%03i" % i)
+ filetext = "file-%03i\n" % i
+ self.mkfile(filename, filetext)
+ filename = os.path.join(tmpdir,"README")
+ filetext = self.readme()
+ self.mkfile(filename, filetext)
+ shell("{exe} ../{zipfile} ??*.* README".format(**locals()), cwd=tmpdir)
+ self.assertGreater(os.path.getsize(zipfile), 10)
+ def test_10004_make_test4_zip(self):
+ """ create a test4.zip for later tests using standard 'zip'
+ It will NOT fall back to a variant in the source code.
+ The archive has 10000 generic files with known content
+ and they are stored (NOT compressed) in the archive. """
+ zipfile="test4.zip"
+ tmpdir="test4.tmp"
+ exe=self.bins("mkzip")
+ for i in range(10000):
+ filename = os.path.join(tmpdir,"file%04i.txt" % i)
+ filetext = "file-%04i\n" % i
+ self.mkfile(filename, filetext)
+ filename = os.path.join(tmpdir,"README")
+ filetext = self.readme()
+ self.mkfile(filename, filetext)
+ shell("{exe} -n README ../{zipfile} ??*.* README".format(**locals()), cwd=tmpdir)
+ self.assertGreater(os.path.getsize(zipfile), 1000000)
+ def test_10005_make_test5_zip(self):
+ """ create a test5.zip for later tests using standard 'zip'
+ It will NOT fall back to a variant in the source code.
+ The archive has files at multiple subdirectories depth
+ and of varying sizes each. """
+ zipfile="test5.zip"
+ tmpdir="test5.tmp"
+ exe=self.bins("mkzip")
+ for depth in range(20):
+ dirpath = ""
+ for i in range(depth):
+ if i:
+ dirpath += "subdir%i/" % i
+ for size in range(18):
+ size = 2 ** size
+ filetext = self.gentext(size)
+ filepart = "file%i-%i.txt" % (depth, size)
+ filename = os.path.join(tmpdir, dirpath + filepart )
+ self.mkfile(filename, filetext)
+ filename = os.path.join(tmpdir,"README")
+ filetext = self.readme()
+ self.mkfile(filename, filetext)
+ shell("{exe} ../{zipfile} -r file* subdir* README".format(**locals()), cwd=tmpdir)
+ self.assertGreater(os.path.getsize(zipfile), 1000000)
+ def test_10010_make_test0_dat(self):
+ """ create test.dat from test.zip with xorcopy """
+ zipfile = "test0.zip"
+ datfile = "test0x.dat"
+ exe = self.bins("zzxorcopy")
+ shell("{exe} {zipfile} {datfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(datfile), 10)
+ self.assertEqual(os.path.getsize(datfile), os.path.getsize(zipfile))
+ def test_10011_make_test1_dat(self):
+ """ create test.dat from test.zip with xorcopy """
+ zipfile = "test1.zip"
+ datfile = "test1x.dat"
+ exe = self.bins("zzxorcopy")
+ shell("{exe} {zipfile} {datfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(datfile), 10)
+ self.assertEqual(os.path.getsize(datfile), os.path.getsize(zipfile))
+ def test_10012_make_test2_dat(self):
+ """ create test.dat from test.zip with xorcopy """
+ zipfile = "test2.zip"
+ datfile = "test2x.dat"
+ exe = self.bins("zzxorcopy")
+ shell("{exe} {zipfile} {datfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(datfile), 10)
+ self.assertEqual(os.path.getsize(datfile), os.path.getsize(zipfile))
+ def test_10013_make_test3_dat(self):
+ """ create test.dat from test.zip with xorcopy """
+ zipfile = "test3.zip"
+ datfile = "test3x.dat"
+ exe = self.bins("zzxorcopy")
+ shell("{exe} {zipfile} {datfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(datfile), 10)
+ self.assertEqual(os.path.getsize(datfile), os.path.getsize(zipfile))
+ def test_10014_make_test4_dat(self):
+ """ create test.dat from test.zip with xorcopy """
+ zipfile = "test4.zip"
+ datfile = "test4x.dat"
+ exe = self.bins("zzxorcopy")
+ shell("{exe} {zipfile} {datfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(datfile), 10)
+ self.assertEqual(os.path.getsize(datfile), os.path.getsize(zipfile))
+ def test_20000_zziptest_test0_zip(self):
+ """ run zziptest on test.zip """
+ zipfile = "test0.zip"
+ logfile = "test0.log"
+ exe = self.bins("zziptest")
+ shell("{exe} --quick {zipfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ def test_20001_zziptest_test1_zip(self):
+ """ run zziptest on test.zip """
+ zipfile = "test1.zip"
+ logfile = "test1.log"
+ exe = self.bins("zziptest")
+ shell("{exe} --quick {zipfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ def test_20002_zziptest_test2_zip(self):
+ """ run zziptest on test.zip """
+ zipfile = "test2.zip"
+ logfile = "test2.log"
+ exe = self.bins("zziptest")
+ shell("{exe} --quick {zipfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ def test_20003_zziptest_test3_zip(self):
+ """ run zziptest on test.zip """
+ zipfile = "test3.zip"
+ logfile = "test3.log"
+ exe = self.bins("zziptest")
+ shell("{exe} --quick {zipfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ def test_20004_zziptest_test4_zip(self):
+ """ run zziptest on test.zip """
+ zipfile = "test4.zip"
+ logfile = "test4.log"
+ exe = self.bins("zziptest")
+ shell("{exe} --quick {zipfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ def test_20010_zzcat_test0_zip(self):
+ """ run zzcat on test.zip using just test/README """
+ zipfile = "test0.zip"
+ getfile = "test0/README"
+ logfile = "test0.readme.txt"
+ exe = self.bins("zzcat")
+ run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ def test_20011_zzcat_test1_zip(self):
+ """ run zzcat on test.zip using just test/README """
+ zipfile = "test1.zip"
+ getfile = "test1/README"
+ logfile = "test1.readme.txt"
+ exe = self.bins("zzcat")
+ run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "test1/file.1"
+ run = shell("{exe} {getfile}".format(**locals()))
+ self.assertEqual("file-1\n", run.output)
+ def test_20012_zzcat_test2_zip(self):
+ """ run zzcat on test.zip using just test/README """
+ zipfile = "test2.zip"
+ getfile = "test2/README"
+ logfile = "test2.readme.txt"
+ exe = self.bins("zzcat")
+ run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "test2/file.22"
+ run = shell("{exe} {getfile}".format(**locals()))
+ self.assertEqual("file-22\n", run.output)
+ def test_20013_zzcat_test3_zip(self):
+ """ run zzcat on test.zip using just test/README """
+ zipfile = "test3.zip"
+ getfile = "test3/README"
+ logfile = "test3.readme.txt"
+ exe = self.bins("zzcat")
+ run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "test3/file.999"
+ run = shell("{exe} {getfile}".format(**locals()))
+ self.assertEqual("file-999\n", run.output)
+ def test_20014_zzcat_test4_zip(self):
+ """ run zzcat on test.zip using just test/README """
+ zipfile = "test4.zip"
+ getfile = "test4/README"
+ logfile = "test4.readme.txt"
+ exe = self.bins("zzcat")
+ run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "test4/file9999.txt"
+ run = shell("{exe} {getfile}".format(**locals()))
+ self.assertEqual("file-9999\n", run.output)
+ def test_20020_zzdir_test0_zip(self):
+ """ run zzdir on test0.zip using just 'test0' """
+ zipfile = "test0.zip"
+ getfile = "test0"
+ exe = self.bins("zzdir")
+ run = shell("{exe} {getfile} ".format(**locals()))
+ self.assertIn(' README\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertLess(len(run.output), 30)
+ def test_20021_zzdir_test1_zip(self):
+ """ run zzdir on test1.zip using just 'test1' """
+ zipfile = "test1.zip"
+ getfile = "test1"
+ exe = self.bins("zzdir")
+ run = shell("{exe} {getfile} ".format(**locals()))
+ self.assertIn(' file.1\n', run.output)
+ self.assertIn(' file.2\n', run.output)
+ self.assertIn(' file.9\n', run.output)
+ self.assertIn(' README\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20022_zzdir_test2_zip(self):
+ """ run zzdir on test2.zip using just 'test2' """
+ zipfile = "test2.zip"
+ getfile = "test2"
+ exe = self.bins("zzdir")
+ run = shell("{exe} {getfile} ".format(**locals()))
+ self.assertIn(' file.01\n', run.output)
+ self.assertIn(' file.22\n', run.output)
+ self.assertIn(' file.99\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20023_zzdir_test3_zip(self):
+ """ run zzdir on test3.zip using just 'test3' """
+ zipfile = "test3.zip"
+ getfile = "test3"
+ exe = self.bins("zzdir")
+ run = shell("{exe} {getfile} ".format(**locals()))
+ self.assertIn(' file.001\n', run.output)
+ self.assertIn(' file.222\n', run.output)
+ self.assertIn(' file.999\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20024_zzdir_test4_zip(self):
+ """ run zzdir on test4.zip using just 'test4' """
+ zipfile = "test4.zip"
+ getfile = "test4"
+ exe = self.bins("zzdir")
+ run = shell("{exe} {getfile} ".format(**locals()))
+ self.assertIn(' file0001.txt\n', run.output)
+ self.assertIn(' file2222.txt\n', run.output)
+ self.assertIn(' file9999.txt\n', run.output)
+ self.assertNotIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20320_zzxordir_test0_dat(self):
+ """ run zzxordir on test0x.dat """
+ zipfile = "test0x.dat"
+ getfile = "test0x.dat"
+ exe = self.bins("zzdir")
+ run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])
+ self.assertEqual(run.returncode, 1)
+ self.assertEqual("", run.output)
+ self.assertIn("did not open test", run.errors)
+ exe = self.bins("zzxordir")
+ run = shell("{exe} {getfile} ".format(**locals()))
+ self.assertIn(' README\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertLess(len(run.output), 30)
+ def test_20321_zzxordir_test1_dat(self):
+ """ run zzxordir on test1x.dat using just 'test1x' """
+ zipfile = "test1x.dat"
+ getfile = "test1x.dat"
+ exe = self.bins("zzdir")
+ run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])
+ self.assertEqual(run.returncode, 1)
+ self.assertEqual("", run.output)
+ self.assertIn("did not open test", run.errors)
+ exe = self.bins("zzxordir")
+ run = shell("{exe} {getfile} ".format(**locals()))
+ self.assertIn(' file.1\n', run.output)
+ self.assertIn(' file.2\n', run.output)
+ self.assertIn(' file.9\n', run.output)
+ self.assertIn(' README\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20322_zzxordir_test2_dat(self):
+ """ run zzxordir on test2x.dat using just 'test2x' """
+ zipfile = "test2x.dat"
+ getfile = "test2x"
+ exe = self.bins("zzdir")
+ run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])
+ self.assertEqual(run.returncode, 1)
+ self.assertEqual("", run.output)
+ self.assertIn("did not open test", run.errors)
+ exe = self.bins("zzxordir")
+ run = shell("{exe} {getfile} ".format(**locals()))
+ self.assertIn(' file.01\n', run.output)
+ self.assertIn(' file.22\n', run.output)
+ self.assertIn(' file.99\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20323_zzxordir_test3_dat(self):
+ """ run zzxordir on test3x.dat using just 'test3x' """
+ zipfile = "test3x.dat"
+ getfile = "test3x"
+ exe = self.bins("zzdir")
+ run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])
+ self.assertEqual(run.returncode, 1)
+ self.assertEqual("", run.output)
+ self.assertIn("did not open test", run.errors)
+ exe = self.bins("zzxordir")
+ run = shell("{exe} {getfile} ".format(**locals()))
+ self.assertIn(' file.001\n', run.output)
+ self.assertIn(' file.222\n', run.output)
+ self.assertIn(' file.999\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20324_zzxordir_test4_zip(self):
+ """ run zzxordir on test4x.dat using just 'test4x' """
+ zipfile = "test4x.dat"
+ getfile = "test4x"
+ exe = self.bins("zzdir")
+ run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])
+ self.assertEqual(run.returncode, 1)
+ self.assertEqual("", run.output)
+ self.assertIn("did not open test", run.errors)
+ exe = self.bins("zzxordir")
+ run = shell("{exe} {getfile} ".format(**locals()))
+ self.assertIn(' file0001.txt\n', run.output)
+ self.assertIn(' file2222.txt\n', run.output)
+ self.assertIn(' file9999.txt\n', run.output)
+ self.assertNotIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20340_zzxorcat_test0_zip(self):
+ """ run zzxorcat on testx.zip using just testx/README """
+ getfile = "test0x/README"
+ logfile = "test0x.readme.txt"
+ exe = self.bins("zzcat")
+ run = shell("{exe} {getfile} ".format(**locals()), lang="C")
+ self.assertEqual("", run.output)
+ self.assertIn("No such file or directory", run.errors)
+ exe = self.bins("zzxorcat")
+ run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ def test_20341_zzxorcat_test1_zip(self):
+ """ run zzxorcat on testx.zip using just testx/README """
+ getfile = "test1x/README"
+ logfile = "test1x.readme.txt"
+ exe = self.bins("zzcat")
+ run = shell("{exe} {getfile} ".format(**locals()), lang="C")
+ self.assertEqual("", run.output)
+ self.assertIn("No such file or directory", run.errors)
+ exe = self.bins("zzxorcat")
+ run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "test1x/file.1"
+ run = shell("{exe} {getfile}".format(**locals()))
+ self.assertEqual("file-1\n", run.output)
+ def test_20342_zzxorcat_test2_zip(self):
+ """ run zzxorcat on testx.zip using just testx/README """
+ getfile = "test2x/README"
+ logfile = "test2x.readme.txt"
+ exe = self.bins("zzcat")
+ run = shell("{exe} {getfile} ".format(**locals()), lang="C")
+ self.assertEqual("", run.output)
+ self.assertIn("No such file or directory", run.errors)
+ exe = self.bins("zzxorcat")
+ run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "test2x/file.22"
+ run = shell("{exe} {getfile}".format(**locals()))
+ self.assertEqual("file-22\n", run.output)
+ def test_20343_zzxorcat_test3_zip(self):
+ """ run zzxorcat on testx.zip using just testx/README """
+ getfile = "test3x/README"
+ logfile = "test3x.readme.txt"
+ exe = self.bins("zzcat")
+ run = shell("{exe} {getfile} ".format(**locals()), lang="C")
+ self.assertEqual("", run.output)
+ self.assertIn("No such file or directory", run.errors)
+ exe = self.bins("zzxorcat")
+ run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "test3x/file.999"
+ run = shell("{exe} {getfile}".format(**locals()))
+ self.assertEqual("file-999\n", run.output)
+ def test_20344_zzxorcat_test4_zip(self):
+ """ run zzxorcat on testx.zip using just testx/README """
+ getfile = "test4x/README"
+ logfile = "test4x.readme.txt"
+ exe = self.bins("zzxorcat")
+ run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "test4x/file9999.txt"
+ run = shell("{exe} {getfile}".format(**locals()))
+ self.assertEqual("file-9999\n", run.output)
+ #####################################################################
+ # check unzzip
+ #####################################################################
+ def test_20400_infozip_cat_test0_zip(self):
+ """ run inzo-zip cat test.zip using just archive README """
+ zipfile = "test0.zip"
+ getfile = "README"
+ logfile = "test0.readme.pk.txt"
+ exe = self.bins("unzip")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ def test_20401_infozip_cat_test1_zip(self):
+ """ run info-zip cat test.zip using just archive README """
+ zipfile = "test1.zip"
+ getfile = "README"
+ logfile = "test1.readme.pk.txt"
+ exe = self.bins("unzip")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.1"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-1\n", run.output)
+ def test_20402_infozip_cat_test2_zip(self):
+ """ run info-zip cat test.zip using just archive README """
+ zipfile = "test2.zip"
+ getfile = "README"
+ logfile = "test2.readme.pk.txt"
+ exe = self.bins("unzip")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.22"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-22\n", run.output)
+ def test_20405_zzcat_big_test5_zip(self):
+ """ run info-zip cat test.zip using archive README """
+ zipfile = "test5.zip"
+ getfile = "README"
+ logfile = "test5.readme.pk.txt"
+ exe = self.bins("unzip")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/file7-1024.txt"
+ compare = self.gentext(1024)
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual(compare, run.output)
+ def test_20410_zzcat_big_test0_zip(self):
+ """ run zzcat-big on test.zip using just archive README """
+ zipfile = "test0.zip"
+ getfile = "README"
+ logfile = "test0.readme.big.txt"
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ def test_20411_zzcat_big_test1_zip(self):
+ """ run zzcat-big on test.zip using just archive README """
+ zipfile = "test1.zip"
+ getfile = "README"
+ logfile = "test1.readme.big.txt"
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.1"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-1\n", run.output)
+ def test_20412_zzcat_big_test2_zip(self):
+ """ run zzcat-seeke on test.zip using just archive README """
+ zipfile = "test2.zip"
+ getfile = "README"
+ logfile = "test2.readme.big.txt"
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.22"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-22\n", run.output)
+ def test_20415_zzcat_big_test5_zip(self):
+ """ run zzcat-big on test.zip using archive README """
+ zipfile = "test5.zip"
+ getfile = "README"
+ logfile = "test5.readme.zap.txt"
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/file7-1024.txt"
+ compare = self.gentext(1024)
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual(compare, run.output)
+ def test_20420_zzcat_mem_test0_zip(self):
+ """ run zzcat-mem on test.zip using just archive README """
+ zipfile = "test0.zip"
+ getfile = "README"
+ logfile = "test0.readme.mem.txt"
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ def test_20421_zzcat_mem_test1_zip(self):
+ """ run zzcat-mem on test.zip using archive README """
+ zipfile = "test1.zip"
+ getfile = "README"
+ logfile = "test1.readme.mem.txt"
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.1"
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertEqual("file-1\n", run.output)
+ def test_20422_zzcat_mem_test2_zip(self):
+ """ run zzcat-mem on test.zip using archive README """
+ zipfile = "test2.zip"
+ getfile = "README"
+ logfile = "test2.readme.mem.txt"
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.22"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-22\n", run.output)
+ def test_20423_zzcat_mem_test3_zip(self):
+ """ run zzcat-mem on test.zip using archive README """
+ zipfile = "test3.zip"
+ getfile = "README"
+ logfile = "test3.readme.mem.txt"
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.999"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-999\n", run.output)
+ def test_20424_zzcat_mem_test4_zip(self):
+ """ run zzcat-mem on test.zip using archive README """
+ zipfile = "test4.zip"
+ getfile = "README"
+ logfile = "test4.readme.mem.txt"
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file9999.txt"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-9999\n", run.output)
+ def test_20425_zzcat_mem_test5_zip(self):
+ """ run zzcat-mem on test.zip using archive README """
+ zipfile = "test5.zip"
+ getfile = "README"
+ logfile = "test5.readme.zap.txt"
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/file7-1024.txt"
+ compare = self.gentext(1024)
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual(compare, run.output)
+ def test_20430_zzcat_mix_test0_zip(self):
+ """ run zzcat-mix on test.zip using just archive README """
+ zipfile = "test0.zip"
+ getfile = "README"
+ logfile = "test0.readme.mix.txt"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ def test_20431_zzcat_mix_test1_zip(self):
+ """ run zzcat-mix on test.zip using archive README """
+ zipfile = "test1.zip"
+ getfile = "README"
+ logfile = "test1.readme.mix.txt"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.1"
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertEqual("file-1\n", run.output)
+ def test_20432_zzcat_mix_test2_zip(self):
+ """ run zzcat-mix on test.zip using archive README """
+ zipfile = "test2.zip"
+ getfile = "README"
+ logfile = "test2.readme.mix.txt"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.22"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-22\n", run.output)
+ def test_20433_zzcat_mix_test3_zip(self):
+ """ run zzcat-mix on test.zip using archive README """
+ zipfile = "test3.zip"
+ getfile = "README"
+ logfile = "test3.readme.mix.txt"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.999"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-999\n", run.output)
+ def test_20434_zzcat_mix_test4_zip(self):
+ """ run zzcat-mix on test.zip using archive README """
+ zipfile = "test4.zip"
+ getfile = "README"
+ logfile = "test4.readme.mix.txt"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file9999.txt"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-9999\n", run.output)
+ def test_20435_zzcat_mix_test5_zip(self):
+ """ run zzcat-mix on test.zip using archive README """
+ zipfile = "test5.zip"
+ getfile = "README"
+ logfile = "test5.readme.zap.txt"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/file7-1024.txt"
+ compare = self.gentext(1024)
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual(compare, run.output)
+ def test_20440_zzcat_zap_test0_zip(self):
+ """ run zzcat-zap on test.zip using just archive README """
+ zipfile = "test0.zip"
+ getfile = "README"
+ logfile = "test0.readme.txt"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ def test_20441_zzcat_zap_test1_zip(self):
+ """ run zzcat-zap on test.zip using archive README """
+ zipfile = "test1.zip"
+ getfile = "README"
+ logfile = "test1.readme.zap.txt"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.1"
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertEqual("file-1\n", run.output)
+ def test_20442_zzcat_zap_test2_zip(self):
+ """ run zzcat-zap on test.zip using archive README """
+ zipfile = "test2.zip"
+ getfile = "README"
+ logfile = "test2.readme.zap.txt"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.22"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-22\n", run.output)
+ def test_20443_zzcat_zap_test3_zip(self):
+ """ run zzcat-zap on test.zip using archive README """
+ zipfile = "test3.zip"
+ getfile = "README"
+ logfile = "test3.readme.zap.txt"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file.999"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-999\n", run.output)
+ def test_20444_zzcat_zap_test4_zip(self):
+ """ run zzcat-zap on test.zip using archive README """
+ zipfile = "test4.zip"
+ getfile = "README"
+ logfile = "test4.readme.zap.txt"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "file9999.txt"
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual("file-9999\n", run.output)
+ def test_20445_zzcat_zap_test5_zip(self):
+ """ run zzcat-zap on test.zip using archive README """
+ zipfile = "test5.zip"
+ getfile = "README"
+ logfile = "test5.readme.zap.txt"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+ self.assertGreater(os.path.getsize(logfile), 10)
+ self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+ getfile = "subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/file7-1024.txt"
+ compare = self.gentext(1024)
+ run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+ self.assertEqual(compare, run.output)
+
+ def test_20500_infozipdir_test0_zip(self):
+ """ run info-zip dir test0.zip """
+ zipfile = "test0.zip"
+ getfile = "test0.zip"
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {getfile} ".format(**locals()))
+ self.assertIn(' README\n', run.output)
+ self.assertLess(len(run.output), 230)
+ def test_20501_infozipdir_test1_zip(self):
+ """ run info-zip dir test1.zip """
+ zipfile = "test1.zip"
+ getfile = "test1.zip"
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {getfile} ".format(**locals()))
+ self.assertIn(' file.1\n', run.output)
+ self.assertIn(' file.2\n', run.output)
+ self.assertIn(' file.9\n', run.output)
+ self.assertIn(' README\n', run.output)
+ def test_20502_infozipdir_big_test2_zip(self):
+ """ run info-zip dir test2.zip """
+ zipfile = "test2.zip"
+ getfile = "test2.zip"
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {getfile} ".format(**locals()))
+ self.assertIn(' file.01\n', run.output)
+ self.assertIn(' file.22\n', run.output)
+ self.assertIn(' file.99\n', run.output)
+ def test_20503_infozipdir_big_test3_zip(self):
+ """ run info-zip dir test3.zip """
+ zipfile = "test3.zip"
+ getfile = "test3.zip"
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {getfile} ".format(**locals()))
+ self.assertIn(' file.001\n', run.output)
+ self.assertIn(' file.222\n', run.output)
+ self.assertIn(' file.999\n', run.output)
+ def test_20504_infozipdir_big_test4_zip(self):
+ """ run info-zip dir test4.zip """
+ zipfile = "test4.zip"
+ getfile = "test4.zip"
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {getfile} ".format(**locals()))
+ self.assertIn(' file0001.txt\n', run.output)
+ self.assertIn(' file2222.txt\n', run.output)
+ self.assertIn(' file9999.txt\n', run.output)
+ def test_20505_infozipdir_big_test5_zip(self):
+ """ run info-zip dir on test5.zip """
+ zipfile = "test5.zip"
+ getfile = "test5.zip"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn('/subdir14/file15-128.txt\n', run.output)
+ self.assertIn('/subdir5/subdir6/', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20510_zzdir_big_test0_zip(self):
+ """ run zzdir-big on test0.zip """
+ zipfile = "test0.zip"
+ getfile = "test0.zip"
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {getfile} ".format(**locals()))
+ self.assertIn(' README\n', run.output)
+ self.assertLess(len(run.output), 30)
+ def test_20511_zzdir_big_test1_zip(self):
+ """ run zzdir-big on test1.zip """
+ zipfile = "test1.zip"
+ getfile = "test1.zip"
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {getfile} ".format(**locals()))
+ self.assertIn(' file.1\n', run.output)
+ self.assertIn(' file.2\n', run.output)
+ self.assertIn(' file.9\n', run.output)
+ self.assertIn(' README\n', run.output)
+ def test_20512_zzdir_big_test2_zip(self):
+ """ run zzdir-big on test2.zip """
+ zipfile = "test2.zip"
+ getfile = "test2.zip"
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {getfile} ".format(**locals()))
+ self.assertIn(' file.01\n', run.output)
+ self.assertIn(' file.22\n', run.output)
+ self.assertIn(' file.99\n', run.output)
+ def test_20513_zzdir_big_test3_zip(self):
+ """ run zzdir-big on test3.zip """
+ zipfile = "test3.zip"
+ getfile = "test3.zip"
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {getfile} ".format(**locals()))
+ self.assertIn(' file.001\n', run.output)
+ self.assertIn(' file.222\n', run.output)
+ self.assertIn(' file.999\n', run.output)
+ def test_20514_zzdir_big_test4_zip(self):
+ """ run zzdir-big on test4.zip """
+ zipfile = "test4.zip"
+ getfile = "test4.zip"
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {getfile} ".format(**locals()))
+ self.assertIn(' file0001.txt\n', run.output)
+ self.assertIn(' file2222.txt\n', run.output)
+ self.assertIn(' file9999.txt\n', run.output)
+ def test_20515_zzdir_big_test5_zip(self):
+ """ run zzdir-big on test5.zip """
+ zipfile = "test5.zip"
+ getfile = "test5.zip"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn('/subdir14/file15-128.txt\n', run.output)
+ self.assertIn('/subdir5/subdir6/', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20520_zzdir_mem_test0_zip(self):
+ """ run zzdir-mem on test0.zip """
+ zipfile = "test0.zip"
+ getfile = "test0.zip"
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' README\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertLess(len(run.output), 30)
+ def test_20521_zzdir_mem_test1_zip(self):
+ """ run zzdir-mem on test1.zip """
+ zipfile = "test1.zip"
+ getfile = "test1.zip"
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file.1\n', run.output)
+ self.assertIn(' file.2\n', run.output)
+ self.assertIn(' file.9\n', run.output)
+ self.assertIn(' README\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20522_zzdir_mem_test2_zip(self):
+ """ run zzdir-mem on test2.zip """
+ zipfile = "test2.zip"
+ getfile = "test2.zip"
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file.01\n', run.output)
+ self.assertIn(' file.22\n', run.output)
+ self.assertIn(' file.99\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20523_zzdir_mem_test3_zip(self):
+ """ run zzdir-mem on test3.zip """
+ zipfile = "test3.zip"
+ getfile = "test3.zip"
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file.001\n', run.output)
+ self.assertIn(' file.222\n', run.output)
+ self.assertIn(' file.999\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20524_zzdir_mem_test4_zip(self):
+ """ run zzdir-mem on test4.zip """
+ zipfile = "test4.zip"
+ getfile = "test4.zip"
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file0001.txt\n', run.output)
+ self.assertIn(' file2222.txt\n', run.output)
+ self.assertIn(' file9999.txt\n', run.output)
+ self.assertNotIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20525_zzdir_mem_test5_zip(self):
+ """ run zzdir-mem on test5.zip """
+ zipfile = "test5.zip"
+ getfile = "test5.zip"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn('/subdir14/file15-128.txt\n', run.output)
+ self.assertIn('/subdir5/subdir6/', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20530_zzdir_mix_test0_zip(self):
+ """ run zzdir-mix on test0.zip """
+ # self.skipTest("todo")
+ zipfile = "test0.zip"
+ getfile = "test0.zip"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' README\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertLess(len(run.output), 30)
+ def test_20531_zzdir_mix_test1_zip(self):
+ """ run zzdir-mix on test1.zip """
+ zipfile = "test1.zip"
+ getfile = "test1.zip"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file.1\n', run.output)
+ self.assertIn(' file.2\n', run.output)
+ self.assertIn(' file.9\n', run.output)
+ self.assertIn(' README\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20532_zzdir_mix_test2_zip(self):
+ """ run zzdir-mix on test2.zip """
+ zipfile = "test2.zip"
+ getfile = "test2.zip"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file.01\n', run.output)
+ self.assertIn(' file.22\n', run.output)
+ self.assertIn(' file.99\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20533_zzdir_mix_test3_zip(self):
+ """ run zzdir-mix on test3.zip """
+ zipfile = "test3.zip"
+ getfile = "test3.zip"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file.001\n', run.output)
+ self.assertIn(' file.222\n', run.output)
+ self.assertIn(' file.999\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20534_zzdir_mix_test4_zip(self):
+ """ run zzdir-mix on test4.zip """
+ zipfile = "test4.zip"
+ getfile = "test4.zip"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file0001.txt\n', run.output)
+ self.assertIn(' file2222.txt\n', run.output)
+ self.assertIn(' file9999.txt\n', run.output)
+ self.assertNotIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20535_zzdir_mix_test5_zip(self):
+ """ run zzdir-mix on test5.zip """
+ zipfile = "test5.zip"
+ getfile = "test5.zip"
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn('/subdir14/file15-128.txt\n', run.output)
+ self.assertIn('/subdir5/subdir6/', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20540_zzdir_zap_test0_zip(self):
+ """ run zzdir-zap on test0.zip """
+ zipfile = "test0.zip"
+ getfile = "test0.zip"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' README\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertLess(len(run.output), 30)
+ def test_20541_zzdir_zap_test1_zip(self):
+ """ run zzdir-zap on test1.zip """
+ zipfile = "test1.zip"
+ getfile = "test1.zip"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file.1\n', run.output)
+ self.assertIn(' file.2\n', run.output)
+ self.assertIn(' file.9\n', run.output)
+ self.assertIn(' README\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20542_zzdir_zap_test2_zip(self):
+ """ run zzdir-zap on test2.zip """
+ zipfile = "test2.zip"
+ getfile = "test2.zip"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file.01\n', run.output)
+ self.assertIn(' file.22\n', run.output)
+ self.assertIn(' file.99\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20543_zzdir_zap_test3_zip(self):
+ """ run zzdir-zap on test3.zip """
+ zipfile = "test3.zip"
+ getfile = "test3.zip"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file.001\n', run.output)
+ self.assertIn(' file.222\n', run.output)
+ self.assertIn(' file.999\n', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20544_zzdir_zap_test4_zip(self):
+ """ run zzdir-zap on test4.zip """
+ zipfile = "test4.zip"
+ getfile = "test4.zip"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn(' file0001.txt\n', run.output)
+ self.assertIn(' file2222.txt\n', run.output)
+ self.assertIn(' file9999.txt\n', run.output)
+ self.assertNotIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20545_zzdir_zap_test5_zip(self):
+ """ run zzdir-zap on test5.zip """
+ zipfile = "test5.zip"
+ getfile = "test5.zip"
+ exe = self.bins("unzzip")
+ run = shell("{exe} -v {getfile} ".format(**locals()))
+ self.assertIn('/subdir14/file15-128.txt\n', run.output)
+ self.assertIn('/subdir5/subdir6/', run.output)
+ self.assertIn(' defl:N ', run.output)
+ self.assertIn(' stored ', run.output)
+ def test_20595_zzextract_zap_test5_zip(self):
+ """ run zzextract-zap on test5.zip
+ => coughs up a SEGFAULT in zzip_dir_close() ?!?"""
+ self.rm_testdir()
+ zipfile = "test5.zip"
+ getfile = "test5.zip"
+ tmpdir = self.testdir()
+ exe = self.bins("unzzip")
+ run = shell("cd {tmpdir} && ../{exe} ../{getfile} ".format(**locals()));
+ self.assertTrue(tmpdir+'/subdir1/subdir2/file3-1024.txt')
+ # self.rm_testdir()
+
+ url_CVE_2017_5977 = "https://github.com/asarubbo/poc/blob/master"
+ zip_CVE_2017_5977 = "00153-zziplib-invalidread-zzip_mem_entry_extra_block"
+ def test_59770_infozipdir_CVE_2017_5977(self):
+ """ run info-zip dir test0.zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5977
+ file_url = self.url_CVE_2017_5977
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 2])
+ self.assertIn(" didn't find end-of-central-dir signature at end of central dir", run.errors)
+ self.assertIn(" 2 extra bytes at beginning or within zipfile", run.errors)
+ self.assertLess(len(run.output), 280)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [2])
+ self.assertLess(len(run.output), 101)
+ self.assertLess(len(errors(run.errors)), 900)
+ self.assertIn('test: mismatching "local" filename', run.errors)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)
+ self.rm_testdir()
+ def test_59771_zzipdir_big_CVE_2017_5977(self):
+ """ run info-zip -l $(CVE_2017_5977).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5977
+ file_url = self.url_CVE_2017_5977
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" stored test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)
+ self.rm_testdir()
+ def test_59772_zzipdir_mem_CVE_2017_5977(self):
+ """ run unzzip-mem -l $(CVE_2017_5977).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5977
+ file_url = self.url_CVE_2017_5977
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" 3 test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.rm_testdir()
+ def test_59773_zzipdir_mix_CVE_2017_5977(self):
+ """ run unzzip-mix -l $(CVE_2017_5977).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5977
+ file_url = self.url_CVE_2017_5977
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" 3 test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)
+ self.rm_testdir()
+ def test_59774_zzipdir_zap_CVE_2017_5977(self):
+ """ run unzzip -l $(CVE_2017_5977).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5977
+ file_url = self.url_CVE_2017_5977
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 255])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" 3 test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 3) # TODO
+ self.rm_testdir()
+ def test_59779(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5977
+ file_url = self.url_CVE_2017_5977
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 163)
+
+ url_CVE_2017_5978 = "https://github.com/asarubbo/poc/blob/master"
+ zip_CVE_2017_5978 = "00156-zziplib-oobread-zzip_mem_entry_new"
+ def test_59780_infozipdir_CVE_2017_5978(self):
+ """ run info-zip dir test0.zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5978
+ file_url = self.url_CVE_2017_5978
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 3])
+ self.assertIn(' missing 4608 bytes in zipfile', run.errors)
+ self.assertIn(' attempt to seek before beginning of zipfile', run.errors)
+ self.assertLess(len(run.output), 80)
+ self.assertLess(len(errors(run.errors)), 430)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [3])
+ self.assertLess(len(run.output), 90)
+ self.assertLess(len(errors(run.errors)), 900)
+ self.assertIn('attempt to seek before beginning of zipfile', run.errors)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59781_zzipdir_big_CVE_2017_5978(self):
+ """ run info-zip -l $(CVE_2017_5978).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5978
+ file_url = self.url_CVE_2017_5978
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" stored (null)", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,1])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)
+ self.rm_testdir()
+ def test_59782_zzipdir_mem_CVE_2017_5978(self):
+ """ run unzzip-mem -l $(CVE_2017_5978).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5978
+ file_url = self.url_CVE_2017_5978
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 180)
+ # self.assertIn("zzip_mem_disk_load : unable to load entry", run.errors)
+ self.assertIn("zzip_mem_disk_open : unable to load disk", run.errors)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 300)
+ if grep("DEBUG:", run.errors):
+ self.assertIn("zzip_mem_disk_open : unable to load disk", run.errors)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)
+ self.rm_testdir()
+ def test_59783_zzipdir_mix_CVE_2017_5978(self):
+ """ run unzzip-mix -l $(CVE_2017_5978).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5978
+ file_url = self.url_CVE_2017_5978
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 180)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 300)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)
+ self.rm_testdir()
+ def test_59784_zzipdir_zap_CVE_2017_5978(self):
+ """ run unzzip -l $(CVE_2017_5978).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5978
+ file_url = self.url_CVE_2017_5978
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 180)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 300)
+ self.assertTrue(greps(run.errors, "Zipfile corrupted"))
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)
+ self.rm_testdir()
+ def test_59789(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5978
+ file_url = self.url_CVE_2017_5978
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 161)
+
+ url_CVE_2017_5979 = "https://github.com/asarubbo/poc/blob/master"
+ zip_CVE_2017_5979 = "00157-zziplib-nullptr-prescan_entry"
+ def test_59790_infozipdir_CVE_2017_5979(self):
+ """ run info-zip dir test0.zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5979
+ file_url = self.url_CVE_2017_5979
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertIn(' 1 file', run.output)
+ self.assertLess(len(run.output), 330)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 90)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn('extracting: a', run.output)
+ self.assertEqual(os.path.getsize(tmpdir+"/a"), 3)
+ self.rm_testdir()
+ def test_59791_zzipdir_big_CVE_2017_5979(self):
+ """ run info-zip -l $(CVE_2017_5979).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5979
+ file_url = self.url_CVE_2017_5979
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" stored a", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertEqual(os.path.getsize(tmpdir+"/a"), 3)
+ self.rm_testdir()
+ def test_59792_zzipdir_mem_CVE_2017_5979(self):
+ """ run unzzip-mem -l $(CVE_2017_5979).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5979
+ file_url = self.url_CVE_2017_5979
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" 3 a", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertEqual(os.path.getsize(tmpdir+"/a"), 3)
+ self.rm_testdir()
+ def test_59793_zzipdir_mix_CVE_2017_5979(self):
+ """ run unzzip-mix -l $(CVE_2017_5979).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5979
+ file_url = self.url_CVE_2017_5979
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" 3 a", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 20)
+ self.assertEqual(os.path.getsize(tmpdir+"/a"), 0) # FIXME
+ # self.assertEqual(os.path.getsize(tmpdir+"/a"), 3) # FIXME
+ self.rm_testdir()
+ def test_59794_zzipdir_zap_CVE_2017_5979(self):
+ """ run unzzip -l $(CVE_2017_5979).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5979
+ file_url = self.url_CVE_2017_5979
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 255])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" 3 a", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 20)
+ self.assertEqual(os.path.getsize(tmpdir+"/a"), 3)
+ self.rm_testdir()
+ def test_59799(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5979
+ file_url = self.url_CVE_2017_5979
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 155)
+
+
+ url_CVE_2017_5974 = "https://github.com/asarubbo/poc/blob/master"
+ zip_CVE_2017_5974 = "00150-zziplib-heapoverflow-__zzip_get32"
+ def test_59740_infozipdir_CVE_2017_5974(self):
+ """ run info-zip dir test0.zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5974
+ file_url = self.url_CVE_2017_5974
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 9])
+ self.assertIn(' 1 file', run.output)
+ self.assertLess(len(run.output), 330)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 90)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" extracting: test", run.output)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.rm_testdir()
+ def test_59741_zzipdir_big_CVE_2017_5974(self):
+ """ run unzzip-big -l $(CVE_2017_5974).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5974
+ file_url = self.url_CVE_2017_5974
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" stored test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.rm_testdir()
+ def test_59742_zzipdir_mem_CVE_2017_5974(self):
+ """ run unzzip-mem -l $(CVE_2017_5974).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5974
+ file_url = self.url_CVE_2017_5974
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" 3 test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.rm_testdir()
+ def test_59743_zzipdir_mix_CVE_2017_5974(self):
+ """ run unzzip-mix -l $(CVE_2017_5974).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5974
+ file_url = self.url_CVE_2017_5974
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" 3 test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 0) # FIXME
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3) # FIXME
+ self.rm_testdir()
+ def test_59744_zzipdir_zap_CVE_2017_5974(self):
+ """ run unzzip -l $(CVE_2017_5974).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5974
+ file_url = self.url_CVE_2017_5974
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 255])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" 3 test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.rm_testdir()
+ def test_59749(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5974
+ file_url = self.url_CVE_2017_5974
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 161)
+
+ url_CVE_2017_5975 = "https://github.com/asarubbo/poc/blob/master"
+ zip_CVE_2017_5975 = "00151-zziplib-heapoverflow-__zzip_get64"
+ def test_59750_infozipdir_CVE_2017_5975(self):
+ """ run info-zip dir test0.zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5975
+ file_url = self.url_CVE_2017_5975
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 2])
+ self.assertIn(' missing 10 bytes in zipfile', run.errors)
+ self.assertIn("didn't find end-of-central-dir signature at end of central dir", run.errors)
+ self.assertIn(' 1 file', run.output)
+ self.assertLess(len(run.output), 330)
+ self.assertLess(len(errors(run.errors)), 430)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [2])
+ self.assertLess(len(run.output), 90)
+ self.assertLess(len(errors(run.errors)), 900)
+ self.assertIn('file #1: bad zipfile offset (local header sig): 127', run.errors)
+ #self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59751_zzipdir_big_CVE_2017_5975(self):
+ """ run info-zip -l $(CVE_2017_5975).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5975
+ file_url = self.url_CVE_2017_5975
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" stored test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 0) # TODO
+ self.rm_testdir()
+ def test_59752_zzipdir_mem_CVE_2017_5975(self):
+ """ run unzzip-mem -l $(CVE_2017_5975).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5975
+ file_url = self.url_CVE_2017_5975
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 180)
+ self.assertIn("zzip_mem_disk_load : unable to load entry", run.errors)
+ self.assertIn("zzip_mem_disk_open : unable to load disk", run.errors)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 200)
+ if grep("DEBUG:", run.errors):
+ self.assertIn("no header in entry", run.errors)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59753_zzipdir_mix_CVE_2017_5975(self):
+ """ run unzzip-mix -l $(CVE_2017_5975).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5975
+ file_url = self.url_CVE_2017_5975
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 180)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59754_zzipdir_zap_CVE_2017_5975(self):
+ """ run unzzip -l $(CVE_2017_5975).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5975
+ file_url = self.url_CVE_2017_5975
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 180)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertTrue(greps(run.errors, "Zipfile corrupted"))
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59759(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5975
+ file_url = self.url_CVE_2017_5975
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 151)
+
+
+ url_CVE_2017_5976 = "https://github.com/asarubbo/poc/blob/master"
+ zip_CVE_2017_5976 = "00152-zziplib-heapoverflow-zzip_mem_entry_extra_block"
+ def test_59760_infozipdir_CVE_2017_5976(self):
+ """ run info-zip dir test0.zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5976
+ file_url = self.url_CVE_2017_5976
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 2])
+ self.assertIn(' 27 extra bytes at beginning or within zipfile', run.errors)
+ self.assertIn("didn't find end-of-central-dir signature at end of central dir", run.errors)
+ self.assertIn(' 1 file', run.output)
+ self.assertLess(len(run.output), 330)
+ self.assertLess(len(errors(run.errors)), 500)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [2])
+ self.assertLess(len(run.output), 190)
+ self.assertLess(len(errors(run.errors)), 900)
+ self.assertIn("extracting: test", run.output)
+ self.assertIn('-27 bytes too long', run.errors)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ # self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59761_zzipdir_big_CVE_2017_5976(self):
+ """ run info-zip -l $(CVE_2017_5976).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5976
+ file_url = self.url_CVE_2017_5976
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" stored test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.rm_testdir()
+ def test_59762_zzipdir_mem_CVE_2017_5976(self):
+ """ run unzzip-mem -l $(CVE_2017_5976).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5976
+ file_url = self.url_CVE_2017_5976
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn("3 test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 30) # TODO
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.rm_testdir()
+ def test_59763_zzipdir_mix_CVE_2017_5976(self):
+ """ run unzzip-mix -l $(CVE_2017_5976).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5976
+ file_url = self.url_CVE_2017_5976
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn("3 test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 30)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 0) # FIXME
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3) # FIXME
+ self.rm_testdir()
+ def test_59764_zzipdir_zap_CVE_2017_5976(self):
+ """ run unzzip -l $(CVE_2017_5976).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5976
+ file_url = self.url_CVE_2017_5976
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 255])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn("3 test", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 30)
+ self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.rm_testdir()
+ def test_59769(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5976
+ file_url = self.url_CVE_2017_5976
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 188)
+
+ url_CVE_2017_5980 = "https://github.com/asarubbo/poc/blob/master"
+ zip_CVE_2017_5980 = "00154-zziplib-nullptr-zzip_mem_entry_new"
+ def test_59800_infozipdir_CVE_2017_5980(self):
+ """ run info-zip dir test0.zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5980
+ file_url = self.url_CVE_2017_5980
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 2])
+ self.assertIn(' missing 6 bytes in zipfile', run.errors)
+ self.assertIn("didn't find end-of-central-dir signature at end of central dir", run.errors)
+ self.assertIn(' 1 file', run.output)
+ self.assertLess(len(run.output), 330)
+ self.assertLess(len(errors(run.errors)), 500)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [3])
+ self.assertLess(len(run.output), 90)
+ self.assertLess(len(errors(run.errors)), 900)
+ self.assertIn('file #1: bad zipfile offset (lseek)', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59801_zzipdir_big_CVE_2017_5980(self):
+ """ run info-zip -l $(CVE_2017_5980).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5980
+ file_url = self.url_CVE_2017_5980
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ self.assertIn(" stored (null)", run.output)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,1])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59802_zzipdir_mem_CVE_2017_5980(self):
+ """ run unzzip-mem -l $(CVE_2017_5980).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5980
+ file_url = self.url_CVE_2017_5980
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 180)
+ self.assertTrue(greps(run.errors, "unable to load disk"))
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.rm_testdir()
+ def test_59803_zzipdir_mix_CVE_2017_5980(self):
+ """ run unzzip-mix -l $(CVE_2017_5980).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5980
+ file_url = self.url_CVE_2017_5980
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [2])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 180)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [2])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.rm_testdir()
+ def test_59804_zzipdir_zap_CVE_2017_5980(self):
+ """ run unzzip -l $(CVE_2017_5980).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5980
+ file_url = self.url_CVE_2017_5980
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 180)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [3]) # TODO
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.rm_testdir()
+ def test_59809(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5980
+ file_url = self.url_CVE_2017_5980
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 155)
+
+
+ url_CVE_2017_5981 = "https://github.com/asarubbo/poc/blob/master"
+ zip_CVE_2017_5981 = "00161-zziplib-assertionfailure-seeko_C"
+ def test_59810_infozipdir_CVE_2017_5981(self):
+ """ run info-zip dir test0.zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5981
+ file_url = self.url_CVE_2017_5981
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 3])
+ self.assertIn(' missing 4 bytes in zipfile', run.errors)
+ self.assertIn("zipfile corrupt", run.errors)
+ self.assertLess(len(run.output), 80)
+ self.assertLess(len(errors(run.errors)), 500)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [3])
+ self.assertLess(len(run.output), 90)
+ self.assertLess(len(errors(run.errors)), 500)
+ self.assertIn('zipfile corrupt.', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59811_zzipdir_big_CVE_2017_5981(self):
+ """ run info-zip -l $(CVE_2017_5981).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5981
+ file_url = self.url_CVE_2017_5981
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59812_zzipdir_mem_CVE_2017_5981(self):
+ """ run unzzip-mem -l $(CVE_2017_5981).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5981
+ file_url = self.url_CVE_2017_5981
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59813_zzipdir_mix_CVE_2017_5981(self):
+ """ run unzzip-mix -l $(CVE_2017_5981).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5981
+ file_url = self.url_CVE_2017_5981
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 1)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59814_zzipdir_zap_CVE_2017_5981(self):
+ """ run unzzip-zap -l $(CVE_2017_5981).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5981
+ file_url = self.url_CVE_2017_5981
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 80)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_59819(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2017_5981
+ file_url = self.url_CVE_2017_5981
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 157)
+
+ url_CVE_2018_10 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"
+ zip_CVE_2018_10 = "zziplib_0-13-67_zzdir_invalid-memory-access_main.zip"
+ def test_63010(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_10
+ file_url = self.url_CVE_2018_10
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 9])
+ self.assertIn("End-of-central-directory signature not found", run.errors)
+ self.assertLess(len(run.output), 80)
+ self.assertLess(len(errors(run.errors)), 600)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [9])
+ self.assertLess(len(run.output), 90)
+ self.assertLess(len(errors(run.errors)), 600)
+ self.assertIn('End-of-central-directory signature not found', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63011(self):
+ """ unzzip-big -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_10
+ file_url = self.url_CVE_2018_10
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63012(self):
+ """ unzzip-mem -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_10
+ file_url = self.url_CVE_2018_10
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63013(self):
+ """ unzzip-mix -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_10
+ file_url = self.url_CVE_2018_10
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 1)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63014(self):
+ """ unzzip-zap -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_10
+ file_url = self.url_CVE_2018_10
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 80)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63018(self):
+ """ zzdir on $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_10
+ file_url = self.url_CVE_2018_10
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("zzdir")
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [1])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 80)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ def test_63019(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_10
+ file_url = self.url_CVE_2018_10
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 188)
+
+ url_CVE_2018_11 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"
+ zip_CVE_2018_11 = "zziplib_0-13-67_unzzip_infinite-loop_unzzip_cat_file.zip"
+ def test_63110(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_11
+ file_url = self.url_CVE_2018_11
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 9])
+ self.assertIn("End-of-central-directory signature not found", run.errors)
+ self.assertLess(len(run.output), 90)
+ self.assertLess(len(errors(run.errors)), 600)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [9])
+ self.assertLess(len(run.output), 90)
+ self.assertLess(len(errors(run.errors)), 600)
+ self.assertIn('End-of-central-directory signature not found', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63111(self):
+ """ unzzip-big -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_11
+ file_url = self.url_CVE_2018_11
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63112(self):
+ """ unzzip-mem -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_11
+ file_url = self.url_CVE_2018_11
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63113(self):
+ """ unzzip-mix -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_11
+ file_url = self.url_CVE_2018_11
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 1)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63114(self):
+ """ unzzip-zap -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_11
+ file_url = self.url_CVE_2018_11
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 90)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ #
+ run = shell("cd {tmpdir} && ../{exe} -p {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.rm_testdir()
+ def test_63119(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_11
+ file_url = self.url_CVE_2018_11
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 280)
+
+ url_CVE_2018_12 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"
+ zip_CVE_2018_12 = "zziplib_0-13-67_unzip-mem_buffer-access-with-incorrect-length-value_zzip_disk_fread.zip"
+ def test_63810(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_12
+ file_url = self.url_CVE_2018_12
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [2])
+ self.assertIn('reported length of central directory', run.errors)
+ self.assertLess(len(run.output), 300)
+ self.assertLess(len(errors(run.errors)), 800)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [2])
+ self.assertLess(len(run.output), 300)
+ self.assertLess(len(errors(run.errors)), 800)
+ self.assertIn('reported length of central directory', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63811(self):
+ """ unzzip-big -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_12
+ file_url = self.url_CVE_2018_12
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 20)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63812(self):
+ """ unzzip-mem -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_12
+ file_url = self.url_CVE_2018_12
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertIn("2 aUT", run.output) # filename contains a control-character
+ self.assertGreater(len(run.output), 20)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63813(self):
+ """ unzzip-mix -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_12
+ file_url = self.url_CVE_2018_12
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 1)
+ self.assertTrue(grep(run.errors, "central directory not found"))
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63814(self):
+ """ unzzip-zap -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_12
+ file_url = self.url_CVE_2018_12
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_63819(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_12
+ file_url = self.url_CVE_2018_12
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 141)
+
+ url_CVE_2018_14 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"
+ zip_CVE_2018_14 = "zziplib_0-13-67_zzdir_memory-alignment-errors___zzip_fetch_disk_trailer.zip"
+ def test_64840(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_14
+ file_url = self.url_CVE_2018_14
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [3])
+ self.assertIn("attempt to seek before beginning of zipfile", run.errors)
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ #
+ exe = self.bins("unzip")
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [3])
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ self.assertIn('attempt to seek before beginning of zipfile', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_64841(self):
+ """ unzzip-big -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_14
+ file_url = self.url_CVE_2018_14
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_64842(self):
+ """ unzzip-mem -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_14
+ file_url = self.url_CVE_2018_14
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_64843(self):
+ """ unzzip-mix -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_14
+ file_url = self.url_CVE_2018_14
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 2])
+ self.assertLess(len(run.output), 1)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_64844(self):
+ """ unzzip-zap -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_14
+ file_url = self.url_CVE_2018_14
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_64848(self):
+ """ zzdir $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_14
+ file_url = self.url_CVE_2018_14
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("zzdir")
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [1])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ self.rm_testdir()
+ def test_64849(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_14
+ file_url = self.url_CVE_2018_14
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 56)
+
+ url_CVE_2018_15 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"
+ zip_CVE_2018_15 = "zziplib_0-13-67_unzip-mem_memory-alignment-errors_zzip_disk_findfirst.zip"
+ def test_65400(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_15
+ file_url = self.url_CVE_2018_15
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [2])
+ self.assertIn("reported length of central directory", run.errors)
+ self.assertLess(len(run.output), 300)
+ self.assertLess(len(errors(run.errors)), 800)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [2])
+ self.assertLess(len(run.output), 300)
+ self.assertLess(len(errors(run.errors)), 800)
+ self.assertIn('reported length of central directory', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65401(self):
+ """ unzzip-big -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_15
+ file_url = self.url_CVE_2018_15
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 15)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65402(self):
+ """ unzzip-mem -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_15
+ file_url = self.url_CVE_2018_15
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65403(self):
+ """ unzzip-mix -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_15
+ file_url = self.url_CVE_2018_15
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 1)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65404(self):
+ """ unzzip-zap -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_15
+ file_url = self.url_CVE_2018_15
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65409(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_15
+ file_url = self.url_CVE_2018_15
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 141)
+
+ url_CVE_2018_16 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"
+ zip_CVE_2018_16 = "zziplib_0-13-67_unzzip_memory-aligment-errors___zzip_fetch_disk_trailer.zip"
+ def test_65410(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_16
+ file_url = self.url_CVE_2018_16
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 9])
+ self.assertIn("End-of-central-directory signature not found", run.errors)
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [9])
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ self.assertIn('End-of-central-directory signature not found', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65411(self):
+ """ unzzip-big -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_16
+ file_url = self.url_CVE_2018_16
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65412(self):
+ """ unzzip-mem -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_16
+ file_url = self.url_CVE_2018_16
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65413(self):
+ """ unzzip-mix -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_16
+ file_url = self.url_CVE_2018_16
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 1)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65414(self):
+ """ unzzip-zap -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_16
+ file_url = self.url_CVE_2018_16
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ self.assertTrue(greps(run.errors, "Zipfile corrupted"))
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ #
+ run = shell("cd {tmpdir} && ../{exe} -p {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertTrue(greps(run.errors, "Zipfile corrupted"))
+ self.rm_testdir()
+ def test_65419(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_16
+ file_url = self.url_CVE_2018_16
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 124)
+
+ url_CVE_2018_17 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"
+ zip_CVE_2018_17 = "zziplib_0-13-67_unzip-mem_memory-alignment-errors_zzip_disk_findfirst_64.zip"
+ def test_65420(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_17
+ file_url = self.url_CVE_2018_17
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 9])
+ self.assertIn("End-of-central-directory signature not found", run.errors)
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [9])
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ self.assertIn('End-of-central-directory signature not found', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65421(self):
+ """ unzzip-big -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_17
+ file_url = self.url_CVE_2018_17
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65422(self):
+ """ unzzip-mem -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_17
+ file_url = self.url_CVE_2018_17
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 50)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ #
+ run = shell("cd {tmpdir} && ../{exe} -p {filename} ".format(**locals()),
+ returncodes = [0])
+ # self.rm_testdir()
+ def test_65423(self):
+ """ unzzip-mix -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_17
+ file_url = self.url_CVE_2018_17
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 1)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65424(self):
+ """ unzzip-zap -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_17
+ file_url = self.url_CVE_2018_17
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertTrue(greps(run.errors, "Zipfile corrupted"))
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65429(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_17
+ file_url = self.url_CVE_2018_17
+ download_raw(file_url, filename, tmpdir)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 360)
+
+
+ url_CVE_2018_42 = "https://github.com/fantasy7082/image_test/blob/master"
+ zip_CVE_2018_42 = "c006-unknown-add-main"
+ def test_65430(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_42
+ file_url = self.url_CVE_2018_42
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [3])
+ self.assertIn("missing 18 bytes in zipfile", run.errors)
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [3])
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ self.assertIn("missing 18 bytes in zipfile", run.errors)
+ self.assertIn('expected central file header signature not found', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65431(self):
+ """ zzdir $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_42
+ file_url = self.url_CVE_2018_42
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("zzdir")
+ run = shell("{exe} {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ logg.info("OUT %s", run.output)
+ logg.info("ERR %s", run.errors)
+ self.assertIn(" zipped ", run.output)
+ self.rm_testdir()
+
+ url_CVE_2018_43 = "https://github.com/fantasy7082/image_test/blob/master"
+ zip_CVE_2018_43 = "c008-main-unknown-de"
+ def test_65440(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_43
+ file_url = self.url_CVE_2018_43
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [3])
+ self.assertIn("missing 18 bytes in zipfile", run.errors)
+ self.assertGreater(len(run.output), 30)
+ self.assertGreater(len(errors(run.errors)), 1)
+ self.assertLess(len(run.output), 500)
+ self.assertLess(len(errors(run.errors)), 800)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [3])
+ self.assertGreater(len(run.output), 30)
+ self.assertGreater(len(errors(run.errors)), 1)
+ self.assertLess(len(run.output), 400)
+ self.assertLess(len(errors(run.errors)), 800)
+ self.assertIn("missing 18 bytes in zipfile", run.errors)
+ self.assertIn('expected central file header signature not found', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65441(self):
+ """ zzdir $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_43
+ file_url = self.url_CVE_2018_43
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("zzdir")
+ run = shell("{exe} {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ logg.info("OUT %s", run.output)
+ logg.info("ERR %s", run.errors)
+ self.assertIn(" zipped ", run.output)
+ self.rm_testdir()
+
+ url_CVE_2018_27 = "https://github.com/ret2libc/---provided-by-email---"
+ zip_CVE_2018_27 = "poc_bypass_fix2.zip"
+ zip_CVE_2018_27_size = 56
+ def test_65450(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_27
+ file_url = self.url_CVE_2018_27
+ filesize = self.zip_CVE_2018_27_size
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ if ((os.path.getsize(os.path.join(tmpdir, filename)) != filesize)): self.skipTest("missing " + filename)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 9])
+ self.assertIn("End-of-central-directory signature not found", run.errors)
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [9])
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ self.assertIn('End-of-central-directory signature not found', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65451(self):
+ """ unzzip-big -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_27
+ file_url = self.url_CVE_2018_27
+ filesize = self.zip_CVE_2018_27_size
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ if ((os.path.getsize(os.path.join(tmpdir, filename)) != filesize)): self.skipTest("missing " + filename)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65452(self):
+ """ unzzip-mem -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_27
+ file_url = self.url_CVE_2018_27
+ filesize = self.zip_CVE_2018_27_size
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ if ((os.path.getsize(os.path.join(tmpdir, filename)) != filesize)): self.skipTest("missing " + filename)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 50)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ #
+ run = shell("cd {tmpdir} && ../{exe} -p {filename} ".format(**locals()),
+ returncodes = [0])
+ # self.rm_testdir()
+ def test_65453(self):
+ """ unzzip-mix -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_27
+ file_url = self.url_CVE_2018_27
+ filesize = self.zip_CVE_2018_27_size
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ if ((os.path.getsize(os.path.join(tmpdir, filename)) != filesize)): self.skipTest("missing " + filename)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 1)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65454(self):
+ """ unzzip-zap -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_27
+ file_url = self.url_CVE_2018_27
+ filesize = self.zip_CVE_2018_27_size
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ if ((os.path.getsize(os.path.join(tmpdir, filename)) != filesize)): self.skipTest("missing " + filename)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertTrue(greps(run.errors, "Zipfile corrupted"))
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65459(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_27
+ file_url = self.url_CVE_2018_27
+ filesize = self.zip_CVE_2018_27_size
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ if ((os.path.getsize(os.path.join(tmpdir, filename)) != filesize)): self.skipTest("missing " + filename)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, filesize) # 56
+
+ url_CVE_2018_41 = "https://github.com/fantasy7082/image_test/blob/master"
+ zip_CVE_2018_41 = "c005-bus-zzip_parse_root_directory" # CVE-2018-7726.
+ def test_65460(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_41
+ file_url = self.url_CVE_2018_41
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 3])
+ self.assertIn("missing 20 bytes in zipfile", run.errors)
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [3])
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 800)
+ self.assertIn("missing 20 bytes in zipfile", run.errors)
+ self.assertIn('attempt to seek before beginning of zipfile', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65461(self):
+ """ zzdir $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_41
+ file_url = self.url_CVE_2018_41
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("zzdir")
+ run = shell("{exe} {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [1])
+ logg.info("OUT %s", run.output)
+ logg.info("ERR %s", run.errors)
+ ####### self.assertIn(" zipped ", run.output)
+ self.rm_testdir()
+
+ url_CVE_2018_39 = "https://github.com/fantasy7082/image_test/blob/master"
+ zip_CVE_2018_39 = "003-unknow-def-zip"
+ def test_65470(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_39
+ file_url = self.url_CVE_2018_39
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [3])
+ self.assertIn("missing 5123 bytes in zipfile", run.errors)
+ self.assertIn("expected central file header signature not found", run.errors)
+ self.assertLess(len(run.output), 400)
+ self.assertLess(len(errors(run.errors)), 800)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [3])
+ self.assertLess(len(run.output), 400)
+ self.assertLess(len(errors(run.errors)), 800)
+ self.assertIn("missing 5123 bytes in zipfile", run.errors)
+ self.assertIn("expected central file header signature not found", run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65471(self):
+ """ unzzip-big -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_39
+ file_url = self.url_CVE_2018_39
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ exe = self.bins("unzzip-big")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 30)
+ self.assertLess(len(errors(run.errors)), 1)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65472(self):
+ """ unzzip-mem -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_39
+ file_url = self.url_CVE_2018_39
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 200)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ #
+ run = shell("cd {tmpdir} && ../{exe} -p {filename} ".format(**locals()),
+ returncodes = [0])
+ # self.rm_testdir()
+ def test_65473(self):
+ """ unzzip-mix -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_39
+ file_url = self.url_CVE_2018_39
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ exe = self.bins("unzzip-mix")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 1)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,2])
+ self.assertLess(len(run.output), 30)
+ self.assertErrorMessage(run.errors, errno.EILSEQ)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65474(self):
+ """ unzzip-zap -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_39
+ file_url = self.url_CVE_2018_39
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ exe = self.bins("unzzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 3])
+ self.assertLess(len(run.output), 1)
+ self.assertLess(len(errors(run.errors)), 200)
+ self.assertErrorMessage(run.errors, 0)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0,3])
+ self.assertLess(len(run.output), 30)
+ self.assertTrue(greps(run.errors, "Zipfile corrupted"))
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65479(self):
+ """ check $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_39
+ file_url = self.url_CVE_2018_39
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ shell("ls -l {tmpdir}/{filename}".format(**locals()))
+ size = os.path.getsize(os.path.join(tmpdir, filename))
+ self.assertEqual(size, 82347)
+
+ url_CVE_2018_40 = "https://github.com/fantasy7082/image_test/blob/master"
+ zip_CVE_2018_40 = "002-mem-leaks-zip"
+ def test_65480(self):
+ """ info unzip -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_40
+ file_url = self.url_CVE_2018_40
+ download_raw(file_url, filename, tmpdir)
+ exe = self.bins("unzip")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [3])
+ self.assertIn("missing 21 bytes in zipfile", run.errors)
+ self.assertGreater(len(run.output), 20)
+ self.assertGreater(len(errors(run.errors)), 1)
+ self.assertLess(len(run.output), 2500)
+ self.assertLess(len(errors(run.errors)), 800)
+ #
+ run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
+ returncodes = [3])
+ self.assertGreater(len(run.output), 20)
+ self.assertGreater(len(errors(run.errors)), 1)
+ self.assertLess(len(run.output), 2500)
+ self.assertLess(len(errors(run.errors)), 800)
+ self.assertIn("missing 21 bytes in zipfile", run.errors)
+ self.assertIn('expected central file header signature not found', run.errors)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ self.rm_testdir()
+ def test_65482(self):
+ """ unzzip-mem -l $(CVE).zip """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_40
+ file_url = self.url_CVE_2018_40
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1500)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 1500)
+ self.assertLess(len(errors(run.errors)), 10)
+ # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
+ self.assertFalse(os.path.exists(tmpdir+"/test"))
+ #
+ run = shell("cd {tmpdir} && ../{exe} -p {filename} ".format(**locals()),
+ returncodes = [0])
+ self.rm_testdir()
+
+ url_CVE_2018_17828 = "https://github.com/gdraheim/zziplib/files/2415382"
+ zip_CVE_2018_17828 = "evil.zip"
+ def test_65484(self):
+ """ extract file with "../" in the pathname [CVE-2018-17828] """
+ tmpdir = self.testdir()
+ filename = self.zip_CVE_2018_17828
+ file_url = self.url_CVE_2018_17828
+ download_raw(file_url, filename, tmpdir)
+ if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
+ exe = self.bins("unzzip-mem")
+ run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
+ returncodes = [0, 80])
+ self.assertLess(len(run.output), 500)
+ self.assertLess(len(errors(run.errors)), 1)
+ #
+ workdir = tmpdir + "/d1/d2"
+ os.makedirs(workdir)
+ run = shell("cd {workdir} && ../../../{exe} ../../{filename} ".format(**locals()),
+ returncodes = [0])
+ self.assertLess(len(run.output), 500)
+ self.assertEqual(len(errors(run.errors)), 1)
+ self.assertFalse(os.path.exists(tmpdir+"/test/evil.conf"))
+ self.assertTrue(os.path.exists(workdir+"/test/evil.conf"))
+ self.rm_testdir()
+
+ def test_65485_list_verbose_compressed_with_directory(self):
+ """ verbously list a zipfile containing directories """
+ chdir = "chdir"
+ if not exeext: chdir = "cd"
+ tmpdir = self.testdir()
+ workdir = tmpdir + "/d"
+ zipname = "ZIPfile"
+ os.makedirs(workdir)
+ f= open(tmpdir + "/d/file","w+")
+ for i in range(10):
+ f.write("This is line %d\r\n" % (i+1))
+ f.close()
+ # create the ZIPfile
+ mkzip=self.bins("mkzip")
+ run = shell("{chdir} {tmpdir} && {mkzip} -9 {zipname}.zip d".format(**locals()))
+ self.assertFalse(run.returncode)
+ # list the ZIPfile
+ exe=self.bins("unzip-mem");
+ run = shell("{chdir} {tmpdir} && ../{exe} -v {zipname}.zip".format(**locals()), returncodes = [0,-8])
+ logg.error("FIXME: unzip-mem test_65485 is not solved")
+ self.skipTest("FIXME: not solved")
+ self.assertFalse(run.returncode)
+ self.rm_testdir()
+
+ def test_91000_zzshowme_check_sfx(self):
+ """ create an *.exe that can extract its own zip content """
+ mkzip=self.bins("mkzip")
+ exefile = "tmp.zzshowme" + exeext
+ libstub1 = ".libs/zzipself" + exeext
+ libstub2 = "zzipself" + exeext
+ libstub = os.path.exists(libstub1) and libstub1 or libstub2
+ txtfile_name = readme
+ txtfile = self.src(readme)
+ # add the extract-stub so we have reserved the size
+ run = shell("{mkzip} -0 -j {exefile}.zip {libstub}".format(**locals()))
+ self.assertFalse(run.returncode)
+ # add the actual content which may now be compressed
+ run = shell("{mkzip} -9 -j {exefile}.zip {txtfile}".format(**locals()))
+ self.assertFalse(run.returncode)
+ # rename .zip to .exe and put the extract-stub at the start
+ shutil.copy(exefile+".zip", exefile)
+ setstub="./zzipsetstub" + exeext
+ run = shell("{setstub} {exefile} {libstub}".format(**locals()))
+ self.assertFalse(run.returncode)
+ os.chmod(exefile, 0o755)
+ # now ask the new .exe to show some of its own content
+ run = shell("./{exefile} {txtfile_name}".format(**locals()))
+ self.assertFalse(run.returncode)
+ txt = open(txtfile).read()
+ self.assertEqual(txt.split("\n"), run.output.split("\n"))
+
+ def test_99000_make_test1w_zip(self):
+ """ create a test1w.zip using zzip/write functions. """
+ exe=self.bins("zzip")
+ run = shell("{exe} --version".format(**locals()))
+ if "- NO -" in run.output:
+ self.skipTest("- NO -D_ZZIP_ENABLE_WRITE")
+ return
+ zipfile=self.testzip()
+ tmpdir=self.testdir()
+ exe=self.bins("zzip")
+ for i in [1,2,3,4,5,6,7,8,9]:
+ filename = os.path.join(tmpdir,"file.%i" % i)
+ filetext = "file-%i\n" % i
+ self.mkfile(filename, filetext)
+ filename = os.path.join(tmpdir,"README")
+ filetext = self.readme()
+ self.mkfile(filename, filetext)
+ self.rm_zipfile()
+ shell("../{exe} ../{zipfile} ??*.* README".format(**locals()), cwd=tmpdir)
+ self.assertGreater(os.path.getsize(zipfile), 10)
+
+
+
+
+if __name__ == "__main__":
+ import optparse
+ _o = optparse.OptionParser("%prog [options] test_xxx")
+ _o.add_option("-b", "--bindir", metavar="DIR", default=bindir,
+ help="path to the bindir to use [%default]")
+ _o.add_option("-s", "--topsrcdir", metavar="DIR", default=topsrcdir,
+ help="path to the top srcdir / unpack directory [%default]")
+ _o.add_option("-t", "--testdatadir", metavar="DIR", default=testdatadir,
+ help="path where temporary testdata is created [%default]")
+ _o.add_option("-Z", "--mkzip", metavar="EXE", default=mkzip,
+ help="name or path to zip.exe for *.zip creation [%default]")
+ _o.add_option("-U", "--unzip", metavar="EXE", default=unzip,
+ help="name or path to unzip.exe to unpack *.zip [%default]")
+ _o.add_option("-E", "--exeext", metavar="EXT", default=exeext,
+ help="the executable extension (automake $(EXEEXT)) [%default]")
+ _o.add_option("--xmlresults", metavar="FILE", default=None,
+ help="capture results as a junit xml file [%default]")
+ _o.add_option("-v", "--verbose", action="count", default=0,
+ help="increase logging output [%default]")
+ opt, args = _o.parse_args()
+ logging.basicConfig(level = logging.WARNING - 10 * opt.verbose)
+ topsrcdir = opt.topsrcdir
+ bindir = opt.bindir
+ testdatdir = opt.testdatadir
+ mkzip = opt.mkzip
+ unzip = opt.unzip
+ exeext = opt.exeext
+ if not args: args += [ "test_" ]
+ suite = unittest.TestSuite()
+ for arg in args:
+ for classname in sorted(list(globals())):
+ if not classname.endswith("Test"):
+ continue
+ testclass = globals()[classname]
+ for method in sorted(dir(testclass)):
+ if "*" not in arg: arg += "*"
+ if arg.startswith("_"): arg = arg[1:]
+ if matches(method, arg):
+ suite.addTest(testclass(method))
+
+ xmlresults = opt.xmlresults
+ if xmlresults:
+ try: import xmlrunner
+ except: xmlresults=None
+ if xmlresults:
+ if os.path.exists(opt.xmlresults):
+ os.remove(opt.xmlresults)
+ logg.info("xml results into %s", opt.xmlresults)
+ Runner = xmlrunner.XMLTestRunner
+ result = Runner(output=opt.xmlresults).run(suite)
+ else:
+ Runner = unittest.TextTestRunner
+ result = Runner(verbosity=opt.verbose).run(suite)
+ if not result.wasSuccessful():
+ sys.exit(1)
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds.py b/Build/source/libs/zziplib/zziplib-src/testbuilds.py
new file mode 100755
index 00000000000..756e77e5fc9
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds.py
@@ -0,0 +1,1640 @@
+#! /usr/bin/env python3
+""" Testcases for zziplib build system """
+
+__copyright__ = "(C) Guido Draheim, all rights reserved"""
+__version__ = "0.13.71"
+
+import subprocess
+import os.path
+import time
+import datetime
+import unittest
+import shutil
+import inspect
+import types
+import logging
+import re
+from fnmatch import fnmatchcase as fnmatch
+from glob import glob
+import json
+import sys
+
+if sys.version[0] == '3':
+ basestring = str
+ xrange = range
+
+logg = logging.getLogger("TESTING")
+_python = "/usr/bin/python"
+
+SAVETO = "localhost:5000/zziplib"
+IMAGES = "localhost:5000/zziplib/image"
+CENTOS = "centos:7.7.1908"
+UBUNTU = "ubuntu:16.04"
+OPENSUSE = "opensuse/leap:15.1"
+
+DOCKER_SOCKET = "/var/run/docker.sock"
+
+def decodes(text):
+ if text is None: return None
+ if isinstance(text, bytes):
+ encoded = sys.getdefaultencoding()
+ if encoded in ["ascii"]:
+ encoded = "utf-8"
+ try:
+ return text.decode(encoded)
+ except:
+ return text.decode("latin-1")
+ return text
+def sh____(cmd, shell=True):
+ if isinstance(cmd, basestring):
+ logg.info(": %s", cmd)
+ else:
+ logg.info(": %s", " ".join(["'%s'" % item for item in cmd]))
+ return subprocess.check_call(cmd, shell=shell)
+def sx____(cmd, shell=True):
+ if isinstance(cmd, basestring):
+ logg.info(": %s", cmd)
+ else:
+ logg.info(": %s", " ".join(["'%s'" % item for item in cmd]))
+ return subprocess.call(cmd, shell=shell)
+def output(cmd, shell=True):
+ if isinstance(cmd, basestring):
+ logg.info(": %s", cmd)
+ else:
+ logg.info(": %s", " ".join(["'%s'" % item for item in cmd]))
+ run = subprocess.Popen(cmd, shell=shell, stdout=subprocess.PIPE)
+ out, err = run.communicate()
+ return decodes(out)
+def output2(cmd, shell=True):
+ if isinstance(cmd, basestring):
+ logg.info(": %s", cmd)
+ else:
+ logg.info(": %s", " ".join(["'%s'" % item for item in cmd]))
+ run = subprocess.Popen(cmd, shell=shell, stdout=subprocess.PIPE)
+ out, err = run.communicate()
+ return decodes(out), run.returncode
+def output3(cmd, shell=True):
+ if isinstance(cmd, basestring):
+ logg.info(": %s", cmd)
+ else:
+ logg.info(": %s", " ".join(["'%s'" % item for item in cmd]))
+ run = subprocess.Popen(cmd, shell=shell, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ out, err = run.communicate()
+ return decodes(out), decodes(err), run.returncode
+def background(cmd, shell=True):
+ BackgroundProcess = collections.namedtuple("BackgroundProcess", ["pid", "run", "log" ])
+ log = open(os.devnull, "wb")
+ run = subprocess.Popen(cmd, shell=shell, stdout=log, stderr=log)
+ pid = run.pid
+ logg.info("PID %s = %s", pid, cmd)
+ return BackgroundProcess(pid, run, log)
+
+
+
+def _lines(lines):
+ if isinstance(lines, basestring):
+ lines = lines.split("\n")
+ if len(lines) and lines[-1] == "":
+ lines = lines[:-1]
+ return lines
+def lines(text):
+ lines = []
+ for line in _lines(text):
+ lines.append(line.rstrip())
+ return lines
+def grep(pattern, lines):
+ for line in _lines(lines):
+ if re.search(pattern, line.rstrip()):
+ yield line.rstrip()
+def greps(lines, pattern):
+ return list(grep(pattern, lines))
+
+def download(base_url, filename, into):
+ if not os.path.isdir(into):
+ os.makedirs(into)
+ if not os.path.exists(os.path.join(into, filename)):
+ sh____("cd {into} && wget {base_url}/{filename}".format(**locals()))
+def text_file(filename, content):
+ filedir = os.path.dirname(filename)
+ if not os.path.isdir(filedir):
+ os.makedirs(filedir)
+ f = open(filename, "w")
+ if content.startswith("\n"):
+ x = re.match("(?s)\n( *)", content)
+ indent = x.group(1)
+ for line in content[1:].split("\n"):
+ if line.startswith(indent):
+ line = line[len(indent):]
+ f.write(line+"\n")
+ else:
+ f.write(content)
+ f.close()
+def shell_file(filename, content):
+ text_file(filename, content)
+ os.chmod(filename, 0o770)
+def copy_file(filename, target):
+ targetdir = os.path.dirname(target)
+ if not os.path.isdir(targetdir):
+ os.makedirs(targetdir)
+ shutil.copyfile(filename, target)
+def copy_tool(filename, target):
+ copy_file(filename, target)
+ os.chmod(target, 0o750)
+
+def get_caller_name():
+ frame = inspect.currentframe().f_back.f_back
+ return frame.f_code.co_name
+def get_caller_caller_name():
+ frame = inspect.currentframe().f_back.f_back.f_back
+ return frame.f_code.co_name
+def os_path(root, path):
+ if not root:
+ return path
+ if not path:
+ return path
+ while path.startswith(os.path.sep):
+ path = path[1:]
+ return os.path.join(root, path)
+def docname(path):
+ return os.path.splitext(os.path.basename(path))[0]
+
+class ZZiplibBuildTest(unittest.TestCase):
+ def caller_testname(self):
+ name = get_caller_caller_name()
+ x1 = name.find("_")
+ if x1 < 0: return name
+ x2 = name.find("_", x1+1)
+ if x2 < 0: return name
+ return name[:x2]
+ def testname(self, suffix = None):
+ name = self.caller_testname()
+ if suffix:
+ return name + "_" + suffix
+ return name
+ def testdir(self, testname = None):
+ testname = testname or self.caller_testname()
+ newdir = "tmp/tmp."+testname
+ if os.path.isdir(newdir):
+ shutil.rmtree(newdir)
+ os.makedirs(newdir)
+ return newdir
+ def rm_testdir(self, testname = None):
+ testname = testname or self.caller_testname()
+ newdir = "tmp/tmp."+testname
+ if os.path.isdir(newdir):
+ shutil.rmtree(newdir)
+ return newdir
+ def makedirs(self, path):
+ if not os.path.isdir(path):
+ os.makedirs(path)
+ def user(self):
+ import getpass
+ getpass.getuser()
+ def ip_container(self, name):
+ values = output("docker inspect "+name)
+ values = json.loads(values)
+ if not values or "NetworkSettings" not in values[0]:
+ logg.critical(" docker inspect %s => %s ", name, values)
+ return values[0]["NetworkSettings"]["IPAddress"]
+ def local_system(self):
+ distro, version = "", ""
+ if os.path.exists("/etc/os-release"):
+ # rhel:7.4 # VERSION="7.4 (Maipo)" ID="rhel" VERSION_ID="7.4"
+ # centos:7.3 # VERSION="7 (Core)" ID="centos" VERSION_ID="7"
+ # centos:7.4 # VERSION="7 (Core)" ID="centos" VERSION_ID="7"
+ # centos:7.7.1908 # VERSION="7 (Core)" ID="centos" VERSION_ID="7"
+ # opensuse:42.3 # VERSION="42.3" ID=opensuse VERSION_ID="42.3"
+ # opensuse/leap:15.0 # VERSION="15.0" ID="opensuse-leap" VERSION_ID="15.0"
+ # ubuntu:16.04 # VERSION="16.04.3 LTS (Xenial Xerus)" ID=ubuntu VERSION_ID="16.04"
+ # ubuntu:18.04 # VERSION="18.04.1 LTS (Bionic Beaver)" ID=ubuntu VERSION_ID="18.04"
+ for line in open("/etc/os-release"):
+ key, value = "", ""
+ m = re.match('^([_\\w]+)=([^"].*).*', line.strip())
+ if m:
+ key, value = m.group(1), m.group(2)
+ m = re.match('^([_\\w]+)="([^"]*)".*', line.strip())
+ if m:
+ key, value = m.group(1), m.group(2)
+ # logg.debug("%s => '%s' '%s'", line.strip(), key, value)
+ if key in ["ID"]:
+ distro = value.replace("-","/")
+ if key in ["VERSION_ID"]:
+ version = value
+ if os.path.exists("/etc/redhat-release"):
+ for line in open("/etc/redhat-release"):
+ m = re.search("release (\\d+[.]\\d+).*", line)
+ if m:
+ distro = "rhel"
+ version = m.group(1)
+ if os.path.exists("/etc/centos-release"):
+ # CentOS Linux release 7.5.1804 (Core)
+ for line in open("/etc/centos-release"):
+ m = re.search("release (\\d+[.]\\d+).*", line)
+ if m:
+ distro = "centos"
+ version = m.group(1)
+ logg.info(":: local_system %s:%s", distro, version)
+ if distro and version:
+ return "%s:%s" % (distro, version)
+ return ""
+ def with_local_ubuntu_mirror(self, ver = None):
+ """ detects a local ubuntu mirror or starts a local
+ docker container with a ubunut repo mirror. It
+ will return the extra_hosts setting to start
+ other docker containers"""
+ rmi = "localhost:5000/mirror-packages"
+ rep = "ubuntu-repo"
+ ver = ver or UBUNTU.split(":")[1]
+ universe = "ubuntu-repo/universe"
+ ok = self.with_local(rmi, universe, ver, "archive.ubuntu.com", "security.ubuntu.com")
+ if ok: return ok
+ return self.with_local(rmi, rep, ver, "archive.ubuntu.com", "security.ubuntu.com")
+ def with_local_centos_mirror(self, ver = None):
+ """ detects a local centos mirror or starts a local
+ docker container with a centos repo mirror. It
+ will return the setting for extrahosts"""
+ rmi = "localhost:5000/mirror-packages"
+ rep = "centos-repo"
+ ver = ver or CENTOS.split(":")[1]
+ return self.with_local(rmi, rep, ver, "mirrorlist.centos.org")
+ def with_local_opensuse_mirror(self, ver = None):
+ """ detects a local opensuse mirror or starts a local
+ docker container with a centos repo mirror. It
+ will return the extra_hosts setting to start
+ other docker containers"""
+ rmi = "localhost:5000/mirror-packages"
+ rep = "opensuse-repo"
+ ver = ver or OPENSUSE.split(":")[1]
+ return self.with_local(rmi, rep, ver, "download.opensuse.org")
+ def with_local(self, rmi, rep, ver, *hosts):
+ image = "{rmi}/{rep}:{ver}".format(**locals())
+ container = "{rep}-{ver}".format(**locals()).replace("/","-")
+ out, err, ok = output3("docker inspect {image}".format(**locals()))
+ image_found = json.loads(out)
+ if not image_found:
+ return {}
+ out, err, ok = output3("docker inspect {container}".format(**locals()))
+ container_found = json.loads(out)
+ if container_found:
+ container_status = container_found[0]["State"]["Status"]
+ logg.info("::: %s -> %s", container, container_status)
+ latest_image_id = image_found[0]["Id"]
+ container_image_id = container_found[0]["Image"]
+ if latest_image_id != container_image_id or container_status not in ["running"]:
+ cmd = "docker rm --force {container}"
+ sx____(cmd.format(**locals()))
+ container_found = []
+ if not container_found:
+ cmd = "docker run --rm=true --detach --name {container} {image}"
+ sh____(cmd.format(**locals()))
+ ip_a = self.ip_container(container)
+ logg.info("::: %s => %s", container, ip_a)
+ return dict(zip(hosts, [ ip_a ] * len(hosts)))
+ def with_local_mirror(self, image):
+ """ attach local centos-repo / opensuse-repo to docker-start enviroment.
+ Effectivly when it is required to 'docker start centos:x.y' then do
+ 'docker start centos-repo:x.y' before and extend the original to
+ 'docker start --add-host mirror...:centos-repo centos:x.y'. """
+ hosts = {}
+ if image.startswith("centos:"):
+ version = image[len("centos:"):]
+ hosts = self.with_local_centos_mirror(version)
+ if image.startswith("opensuse/leap:"):
+ version = image[len("opensuse/leap:"):]
+ hosts = self.with_local_opensuse_mirror(version)
+ if image.startswith("opensuse:"):
+ version = image[len("opensuse:"):]
+ hosts = self.with_local_opensuse_mirror(version)
+ if image.startswith("ubuntu:"):
+ version = image[len("ubuntu:"):]
+ hosts = self.with_local_ubuntu_mirror(version)
+ return hosts
+ def add_hosts(self, hosts):
+ return " ".join(["--add-host %s:%s" % (host, ip_a) for host, ip_a in hosts.items() ])
+ # for host, ip_a in mapping.items():
+ # yield "--add-host {host}:{ip_a}"
+ def local_image(self, image):
+ """ attach local centos-repo / opensuse-repo to docker-start enviroment.
+ Effectivly when it is required to 'docker start centos:x.y' then do
+ 'docker start centos-repo:x.y' before and extend the original to
+ 'docker start --add-host mirror...:centos-repo centos:x.y'. """
+ if os.environ.get("NONLOCAL",""):
+ return image
+ hosts = self.with_local_mirror(image)
+ if hosts:
+ add_hosts = self.add_hosts(hosts)
+ logg.debug("%s %s", add_hosts, image)
+ return "{add_hosts} {image}".format(**locals())
+ return image
+ def local_addhosts(self, dockerfile):
+ image = ""
+ for line in open(dockerfile):
+ m = re.match('[Ff][Rr][Oo][Mm] *"([^"]*)"', line)
+ if m:
+ image = m.group(1)
+ break
+ m = re.match("[Ff][Rr][Oo][Mm] *(\w[^ ]*)", line)
+ if m:
+ image = m.group(1).strip()
+ break
+ logg.debug("--\n-- '%s' FROM '%s'", dockerfile, image)
+ if image:
+ hosts = self.with_local_mirror(image)
+ return self.add_hosts(hosts)
+ return ""
+ def drop_container(self, name):
+ cmd = "docker rm --force {name}"
+ sx____(cmd.format(**locals()))
+ def drop_centos(self):
+ self.drop_container("centos")
+ def drop_ubuntu(self):
+ self.drop_container("ubuntu")
+ def drop_opensuse(self):
+ self.drop_container("opensuse")
+ def make_opensuse(self):
+ self.make_container("opensuse", OPENSUSE)
+ def make_ubuntu(self):
+ self.make_container("ubuntu", UBUNTU)
+ def make_centos(self):
+ self.make_container("centos", CENTOS)
+ def make_container(self, name, image):
+ self.drop_container(name)
+ local_image = self.local_image(image)
+ cmd = "docker run --detach --name {name} {local_image} sleep 1000"
+ sh____(cmd.format(**locals()))
+ print(" # " + local_image)
+ print(" docker exec -it "+name+" bash")
+ #
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ #
+ def test_100(self):
+ logg.info("\n CENTOS = '%s'", CENTOS)
+ self.with_local_centos_mirror()
+ def test_201_centos7_automake_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos7-am-build.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test ! -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} rpm -q --whatprovides /usr/lib64/pkgconfig/zlib.pc"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} pkg-config --libs zlib"
+ zlib = output(cmd.format(**locals()))
+ self.assertEqual(zlib.strip(), "-lz")
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_202_centos8_automake_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos8-am-build.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test ! -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} rpm -q --whatprovides /usr/lib64/pkgconfig/zlib.pc"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} pkg-config --libs zlib"
+ zlib = output(cmd.format(**locals()))
+ self.assertEqual(zlib.strip(), "-lz")
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_211_centos7_build_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos7-build.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test ! -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} rpm -q --whatprovides /usr/lib64/pkgconfig/zlib.pc"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} pkg-config --libs zlib"
+ zlib = output(cmd.format(**locals()))
+ self.assertEqual(zlib.strip(), "-lz")
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_212_centos8_build_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos8-build.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test ! -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} rpm -q --whatprovides /usr/lib64/pkgconfig/zlib.pc"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} pkg-config --libs zlib"
+ zlib = output(cmd.format(**locals()))
+ self.assertEqual(zlib.strip(), "-lz")
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_221_ubuntu16_build_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/ubuntu16-build.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 600"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test ! -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} dpkg -S /usr/lib/x86_64-linux-gnu/pkgconfig/zlib.pc"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} pkg-config --libs zlib"
+ zlib = output(cmd.format(**locals()))
+ self.assertEqual(zlib.strip(), "-lz")
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_222_ubuntu18_build_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/ubuntu18-build.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 600"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test ! -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} dpkg -S /usr/lib/x86_64-linux-gnu/pkgconfig/zlib.pc"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} pkg-config --libs zlib"
+ zlib = output(cmd.format(**locals()))
+ self.assertEqual(zlib.strip(), "-lz")
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_225_ubuntu16_32bit_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/ubuntu16-32bit.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 600"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test ! -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} dpkg -S /usr/lib/i386-linux-gnu/pkgconfig/zlib.pc"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} pkg-config --libs zlib"
+ zlib = output(cmd.format(**locals()))
+ self.assertEqual(zlib.strip(), "-lz")
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_231_opensuse15_build_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/opensuse15-build.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test ! -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} rpm -q --whatprovides /usr/lib64/pkgconfig/zlib.pc"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} pkg-config --libs zlib"
+ zlib = output(cmd.format(**locals()))
+ self.assertEqual(zlib.strip(), "-lz")
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ @unittest.expectedFailure
+ def test_251_windows_static_x64_dockerfile(self):
+ logg.warning(" windows-static-x64 compiles fine but segfaults on linking an .exe")
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/windows-static-x64.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 600"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ #
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ @unittest.expectedFailure
+ def test_252_windows_shared_x64_dockerfile(self):
+ logg.warning(" windows-shared-x64 compiles fine but segfaults on linking an .exe")
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/windows-shared-x64.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 600"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ #
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_301_centos7_automake_sdl2_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos7-am-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_302_centos8_automake_sdl2_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos8-am-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_311_centos7_sdl2_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos7-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_312_centos8_sdl2_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos8-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_321_ubuntu18_sdl2_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/ubuntu16-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 600"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_331_opensuse15_sdl2_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/opensuse15-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test -d /usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_411_centos7_sdl2_destdir_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos7-destdir-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /new/usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /new/usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /new/usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test -d /new/usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_412_centos8_sdl2_destdir_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos8-destdir-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_check=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /new/usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /new/usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'ls -l /new/usr/local/lib64/libzz*'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test -d /new/usr/local/include/SDL_rwops_zzip'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_421_ubuntu16_azure_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/ubuntu16-azure.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_install=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 600"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ #
+ cmd = "docker exec {testname} find src -name *.xml"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_701_centos7_am_docs_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos7-am-docs.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build --build-arg=no_build=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 60"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test ! -d /usr/local/include/zzip/types.h'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'test -d /usr/local/share/doc/zziplib'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'test -f /usr/local/share/man/man3/zzip_opendir.3'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_711_centos7_docs_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname=self.testname()
+ testdir = self.testdir()
+ dockerfile="testbuilds/centos7-docs.dockerfile"
+ addhosts = self.local_addhosts(dockerfile)
+ savename = docname(dockerfile)
+ saveto = SAVETO
+ images = IMAGES
+ build = "build" # "build --build-arg=no_build=true"
+ cmd = "docker {build} . -f {dockerfile} {addhosts} --tag {images}:{testname}"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname} {images}:{testname} sleep 600"
+ sh____(cmd.format(**locals()))
+ #:# container = self.ip_container(testname)
+ cmd = "docker exec {testname} ls -l /usr/local/bin"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} find /usr/local/include -type f"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname} bash -c 'test ! -d /usr/local/include/zzip/types.h'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'test -d /usr/local/share/doc/zziplib'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname} bash -c 'test -f /usr/local/share/man/man3/zzip_opendir.3'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rmi {saveto}/{savename}:latest"
+ sx____(cmd.format(**locals()))
+ cmd = "docker tag {images}:{testname} {saveto}/{savename}:latest"
+ sh____(cmd.format(**locals()))
+ cmd = "docker rmi {images}:{testname}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_9211_centos7_automake_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname1=self.testname() + "_1"
+ testname2=self.testname() + "_2"
+ testdir = self.testdir()
+ dockerfile1="testbuilds/centos7-am-build.dockerfile"
+ dockerfile2="testbuilds/centos7-build.dockerfile"
+ addhosts = self.local_addhosts(dockerfile1)
+ savename1 = docname(dockerfile1)
+ savename2 = docname(dockerfile2)
+ saveto = SAVETO
+ images = IMAGES
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname1} {addhosts} {saveto}/{savename1} sleep 600"
+ sh____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname2} {addhosts} {saveto}/{savename2} sleep 600"
+ #
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname2} bash -c 'cd /usr/local && tar czvf /local.tgz .'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp {testname2}:/local.tgz tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp tmp.local.tgz {testname1}:/local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "rm tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} mkdir -p /new/local"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'cd /new/local && tar xzvf /local.tgz'"
+ sh____(cmd.format(**locals()))
+ #
+ item="{}"
+ end="\\;"
+ A='"s:zzip-zlib-config:zlib:"'
+ B='"s:=/usr/local/:=\\${prefix}/:"'
+ C1='"/^exec_prefix=/d"'
+ C2='"/^datarootdir=/d"'
+ C3='"/^datadir=/d"'
+ C4='"/^sysconfdir=/d"'
+ C5='"/^bindir=/d"'
+ G='"/ generated by configure /d"'
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name *.pc -exec sed -i -e {A} -e {B} -e {C1} -e {C2} -e {C3} -e {C4} -e {C5} -e {G} {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name zzip-zlib-config.pc -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name *.la -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /new/local -name *-0.so -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} diff -uw /usr/local/include/zzip/_config.h /new/local/include/zzip/_config.h"
+ sx____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} diff -urw --no-dereference /usr/local /new/local --exclude _config.h"
+ sx____(cmd.format(**locals()))
+ out = output(cmd.format(**locals()))
+ self.assertFalse(greps(out, "---"))
+ self.assertFalse(greps(out, "Only"))
+ #
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_9212_centos7_automake_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname1=self.testname() + "_1"
+ testname2=self.testname() + "_2"
+ testdir = self.testdir()
+ dockerfile1="testbuilds/centos8-am-build.dockerfile"
+ dockerfile2="testbuilds/centos8-build.dockerfile"
+ addhosts = self.local_addhosts(dockerfile1)
+ savename1 = docname(dockerfile1)
+ savename2 = docname(dockerfile2)
+ saveto = SAVETO
+ images = IMAGES
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname1} {addhosts} {saveto}/{savename1} sleep 600"
+ sh____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname2} {addhosts} {saveto}/{savename2} sleep 600"
+ #
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname2} bash -c 'cd /usr/local && tar czvf /local.tgz .'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp {testname2}:/local.tgz tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp tmp.local.tgz {testname1}:/local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "rm tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} mkdir -p /new/local"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'cd /new/local && tar xzvf /local.tgz'"
+ sh____(cmd.format(**locals()))
+ #
+ item="{}"
+ end="\\;"
+ A='"s:zzip-zlib-config:zlib:"'
+ B='"s:=/usr/local/:=\\${prefix}/:"'
+ C1='"/^exec_prefix=/d"'
+ C2='"/^datarootdir=/d"'
+ C3='"/^datadir=/d"'
+ C4='"/^sysconfdir=/d"'
+ C5='"/^bindir=/d"'
+ G='"/ generated by configure /d"'
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name *.pc -exec sed -i -e {A} -e {B} -e {C1} -e {C2} -e {C3} -e {C4} -e {C5} -e {G} {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name zzip-zlib-config.pc -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name *.la -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /new/local -name *-0.so -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} diff -uw /usr/local/include/zzip/_config.h /new/local/include/zzip/_config.h"
+ sx____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} diff -urw --no-dereference /usr/local /new/local --exclude _config.h"
+ sx____(cmd.format(**locals()))
+ out = output(cmd.format(**locals()))
+ self.assertFalse(greps(out, "---"))
+ self.assertFalse(greps(out, "Only"))
+ #
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_9311_centos7_automake_sdl2_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname1=self.testname() + "_1"
+ testname2=self.testname() + "_2"
+ testdir = self.testdir()
+ dockerfile1="testbuilds/centos7-am-sdl2.dockerfile"
+ dockerfile2="testbuilds/centos7-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile1)
+ savename1 = docname(dockerfile1)
+ savename2 = docname(dockerfile2)
+ saveto = SAVETO
+ images = IMAGES
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname1} {addhosts} {saveto}/{savename1} sleep 600"
+ sh____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname2} {addhosts} {saveto}/{savename2} sleep 600"
+ #
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname2} bash -c 'cd /usr/local && tar czvf /local.tgz .'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp {testname2}:/local.tgz tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp tmp.local.tgz {testname1}:/local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "rm tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} mkdir -p /new/local"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'cd /new/local && tar xzvf /local.tgz'"
+ sh____(cmd.format(**locals()))
+ #
+ item="{}"
+ end="\\;"
+ A='"s:zzip-zlib-config:zlib:"'
+ B='"s:=/usr/local/:=\\${prefix}/:"'
+ C1='"/^exec_prefix=/d"'
+ C2='"/^datarootdir=/d"'
+ C3='"/^datadir=/d"'
+ C4='"/^sysconfdir=/d"'
+ C5='"/^bindir=/d"'
+ G='"/ generated by configure /d"'
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name *.pc -exec sed -i -e {A} -e {B} -e {C1} -e {C2} -e {C3} -e {C4} -e {C5} -e {G} {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name zzip-zlib-config.pc -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name *.la -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /new/local -name *-0.so -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} diff -uw /usr/local/include/zzip/_config.h /new/local/include/zzip/_config.h"
+ sx____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} diff -urw --no-dereference /usr/local /new/local --exclude _config.h"
+ sx____(cmd.format(**locals()))
+ out = output(cmd.format(**locals()))
+ self.assertFalse(greps(out, "---"))
+ self.assertFalse(greps(out, "Only"))
+ #
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_9312_centos7_automake_sdl2_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname1=self.testname() + "_1"
+ testname2=self.testname() + "_2"
+ testdir = self.testdir()
+ dockerfile1="testbuilds/centos8-am-sdl2.dockerfile"
+ dockerfile2="testbuilds/centos8-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile1)
+ savename1 = docname(dockerfile1)
+ savename2 = docname(dockerfile2)
+ saveto = SAVETO
+ images = IMAGES
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname1} {addhosts} {saveto}/{savename1} sleep 600"
+ sh____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname2} {addhosts} {saveto}/{savename2} sleep 600"
+ #
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname2} bash -c 'cd /usr/local && tar czvf /local.tgz .'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp {testname2}:/local.tgz tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp tmp.local.tgz {testname1}:/local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "rm tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} mkdir -p /new/local"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'cd /new/local && tar xzvf /local.tgz'"
+ sh____(cmd.format(**locals()))
+ #
+ item="{}"
+ end="\\;"
+ A='"s:zzip-zlib-config:zlib:"'
+ B='"s:=/usr/local/:=\\${prefix}/:"'
+ C1='"/^exec_prefix=/d"'
+ C2='"/^datarootdir=/d"'
+ C3='"/^datadir=/d"'
+ C4='"/^sysconfdir=/d"'
+ C5='"/^bindir=/d"'
+ G='"/ generated by configure /d"'
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name *.pc -exec sed -i -e {A} -e {B} -e {C1} -e {C2} -e {C3} -e {C4} -e {C5} -e {G} {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name zzip-zlib-config.pc -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /usr/local -name *.la -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'find /new/local -name *-0.so -exec rm -v {item} {end}'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} diff -uw /usr/local/include/zzip/_config.h /new/local/include/zzip/_config.h"
+ sx____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} diff -urw --no-dereference /usr/local /new/local --exclude _config.h"
+ sx____(cmd.format(**locals()))
+ out = output(cmd.format(**locals()))
+ self.assertFalse(greps(out, "---"))
+ self.assertFalse(greps(out, "Only"))
+ #
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_9411_centos7_automake_sdl2_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname1=self.testname() + "_1"
+ testname2=self.testname() + "_2"
+ testdir = self.testdir()
+ dockerfile1="testbuilds/centos7-sdl2.dockerfile"
+ dockerfile2="testbuilds/centos7-destdir-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile1)
+ savename1 = docname(dockerfile1)
+ savename2 = docname(dockerfile2)
+ saveto = SAVETO
+ images = IMAGES
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname1} {addhosts} {saveto}/{savename1} sleep 600"
+ sh____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname2} {addhosts} {saveto}/{savename2} sleep 600"
+ #
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname2} bash -c 'cd /new/usr/local && tar czvf /local.tgz .'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp {testname2}:/local.tgz tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp tmp.local.tgz {testname1}:/local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "rm tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} mkdir -p /new/local"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'cd /new/local && tar xzvf /local.tgz'"
+ sh____(cmd.format(**locals()))
+ #
+ DIRS="etc lib libexec sbin games src share/info share/applications share/man/mann"
+ for i in xrange(1,10):
+ DIRS+=" share/man/man%i share/man/man%ix" % (i,i)
+ cmd = "docker exec {testname1} bash -c 'cd /new/local && (for u in {DIRS}; do mkdir -pv $u; done)'"
+ sh____(cmd.format(**locals()))
+ item="{}"
+ end="\\;"
+ cmd = "docker exec {testname1} diff -urw --no-dereference /usr/local /new/local"
+ sx____(cmd.format(**locals()))
+ out = output(cmd.format(**locals()))
+ self.assertFalse(greps(out, "---"))
+ self.assertFalse(greps(out, "Only"))
+ #
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_9412_centos7_automake_sdl2_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname1=self.testname() + "_1"
+ testname2=self.testname() + "_2"
+ testdir = self.testdir()
+ dockerfile1="testbuilds/centos8-sdl2.dockerfile"
+ dockerfile2="testbuilds/centos8-destdir-sdl2.dockerfile"
+ addhosts = self.local_addhosts(dockerfile1)
+ savename1 = docname(dockerfile1)
+ savename2 = docname(dockerfile2)
+ saveto = SAVETO
+ images = IMAGES
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname1} {addhosts} {saveto}/{savename1} sleep 600"
+ sh____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname2} {addhosts} {saveto}/{savename2} sleep 600"
+ #
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname2} bash -c 'cd /new/usr/local && tar czvf /local.tgz .'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp {testname2}:/local.tgz tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp tmp.local.tgz {testname1}:/local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "rm tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} mkdir -p /new/local"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'cd /new/local && tar xzvf /local.tgz'"
+ sh____(cmd.format(**locals()))
+ #
+ DIRS="etc lib libexec sbin games src share/info share/applications share/man/mann"
+ for i in xrange(1,10):
+ DIRS+=" share/man/man%i share/man/man%ix" % (i,i)
+ cmd = "docker exec {testname1} bash -c 'cd /new/local && (for u in {DIRS}; do mkdir -pv $u; done)'"
+ sh____(cmd.format(**locals()))
+ item="{}"
+ end="\\;"
+ cmd = "docker exec {testname1} diff -urw --no-dereference /usr/local /new/local"
+ sx____(cmd.format(**locals()))
+ out = output(cmd.format(**locals()))
+ self.assertFalse(greps(out, "---"))
+ self.assertFalse(greps(out, "Only"))
+ #
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+ def test_9711_centos7_docs_dockerfile(self):
+ if not os.path.exists(DOCKER_SOCKET): self.skipTest("docker-based test")
+ testname1=self.testname() + "_1"
+ testname2=self.testname() + "_2"
+ testdir = self.testdir()
+ dockerfile1="testbuilds/centos7-am-docs.dockerfile"
+ dockerfile2="testbuilds/centos7-docs.dockerfile"
+ addhosts = self.local_addhosts(dockerfile1)
+ savename1 = docname(dockerfile1)
+ savename2 = docname(dockerfile2)
+ saveto = SAVETO
+ images = IMAGES
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname1} {addhosts} {saveto}/{savename1} sleep 600"
+ sh____(cmd.format(**locals()))
+ cmd = "docker run -d --name {testname2} {addhosts} {saveto}/{savename2} sleep 600"
+ #
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname2} bash -c 'cd /usr/local && tar czvf /local.tgz .'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp {testname2}:/local.tgz tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker cp tmp.local.tgz {testname1}:/local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "rm tmp.local.tgz"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} mkdir -p /new/local"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'cd /new/local && tar xzvf /local.tgz'"
+ sh____(cmd.format(**locals()))
+ #
+ cmd = "docker exec {testname1} bash -c 'cd /usr/local/share/doc/zziplib && mv man/html .'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'cd /usr/local/share/doc/zziplib && rm -rf man'"
+ sh____(cmd.format(**locals()))
+ cmd = "docker exec {testname1} bash -c 'cd /usr/local/share/doc/zziplib && mv html man'"
+ sh____(cmd.format(**locals()))
+ item="{}"
+ end="\\;"
+ cmd = "docker exec {testname1} diff -urw --no-dereference --brief /usr/local /new/local"
+ sx____(cmd.format(**locals()))
+ out = output(cmd.format(**locals()))
+ self.assertFalse(greps(out, "---"))
+ self.assertFalse(greps(out, "Only"))
+ #
+ cmd = "docker exec {testname1} diff -urw --no-dereference /usr/local /new/local"
+ sx____(cmd.format(**locals()))
+ #
+ cmd = "docker rm --force {testname1}"
+ sx____(cmd.format(**locals()))
+ cmd = "docker rm --force {testname2}"
+ sx____(cmd.format(**locals()))
+ self.rm_testdir()
+
+
+if __name__ == "__main__":
+ from optparse import OptionParser
+ _o = OptionParser("%prog [options] test*",
+ epilog=__doc__.strip().split("\n")[0])
+ _o.add_option("-v","--verbose", action="count", default=0,
+ help="increase logging level [%default]")
+ _o.add_option("-p","--python", metavar="EXE", default=_python,
+ help="use another python execution engine [%default]")
+ _o.add_option("-l","--logfile", metavar="FILE", default="",
+ help="additionally save the output log to a file [%default]")
+ _o.add_option("--xmlresults", metavar="FILE", default=None,
+ help="capture results as a junit xml file [%default]")
+ opt, args = _o.parse_args()
+ logging.basicConfig(level = logging.WARNING - opt.verbose * 5)
+ #
+ _python = opt.python
+ #
+ logfile = None
+ if opt.logfile:
+ if os.path.exists(opt.logfile):
+ os.remove(opt.logfile)
+ logfile = logging.FileHandler(opt.logfile)
+ logfile.setFormatter(logging.Formatter("%(levelname)s:%(relativeCreated)d:%(message)s"))
+ logging.getLogger().addHandler(logfile)
+ logg.info("log diverted to %s", opt.logfile)
+ xmlresults = None
+ if opt.xmlresults:
+ if os.path.exists(opt.xmlresults):
+ os.remove(opt.xmlresults)
+ xmlresults = open(opt.xmlresults, "w")
+ logg.info("xml results into %s", opt.xmlresults)
+ #
+ # unittest.main()
+ suite = unittest.TestSuite()
+ if not args: args = [ "test_*" ]
+ for arg in args:
+ for classname in sorted(globals()):
+ if not classname.endswith("Test"):
+ continue
+ testclass = globals()[classname]
+ for method in sorted(dir(testclass)):
+ if "*" not in arg: arg += "*"
+ if arg.startswith("_"): arg = arg[1:]
+ if fnmatch(method, arg):
+ suite.addTest(testclass(method))
+ # select runner
+ if not logfile:
+ if xmlresults:
+ import xmlrunner
+ Runner = xmlrunner.XMLTestRunner
+ Runner(xmlresults).run(suite)
+ else:
+ Runner = unittest.TextTestRunner
+ Runner(verbosity=opt.verbose).run(suite)
+ else:
+ Runner = unittest.TextTestRunner
+ if xmlresults:
+ import xmlrunner
+ Runner = xmlrunner.XMLTestRunner
+ Runner(logfile.stream, verbosity=opt.verbose).run(suite)
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-build.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-build.dockerfile
new file mode 100644
index 00000000000..32f18526a67
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-build.dockerfile
@@ -0,0 +1,26 @@
+FROM centos:7.7.1908
+ARG no_check=false
+ARG no_install=false
+
+ARG _libdir=/usr/local/lib64
+ARG _docdir=/usr/share/doc
+
+RUN yum install -y epel-release
+RUN yum install -y gcc zlib-devel python3 make unzip zip gzip tar
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY Makefile.am Makefile.in configure.ac configure config.h.in zziplib.spec src/
+COPY uses src/uses
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && sh ../configure --libdir=$_libdir --with-docdir=$_docdir --disable-static
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-docs.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-docs.dockerfile
new file mode 100644
index 00000000000..ab4b39fc82d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-docs.dockerfile
@@ -0,0 +1,25 @@
+FROM centos:7.7.1908
+ARG no_build=false
+
+ARG _libdir=/usr/local/lib64
+ARG _docdir=/usr/share/doc
+
+RUN yum install -y epel-release
+RUN yum install -y gcc zlib-devel python3 make unzip zip gzip tar
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY Makefile.am Makefile.in configure.ac configure config.h.in zziplib.spec src/
+COPY uses src/uses
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && sh ../configure --libdir=$_libdir --with-docdir=$_docdir --disable-static
+RUN $no_build || (cd src/build && make)
+RUN cd src/build && make docs
+RUN cd src/build && make install-docs install-mans
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-sdl2.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-sdl2.dockerfile
new file mode 100644
index 00000000000..240da3f546f
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-am-sdl2.dockerfile
@@ -0,0 +1,26 @@
+FROM centos:7.7.1908
+ARG no_check=false
+ARG no_install=false
+
+ARG _libdir=/usr/local/lib64
+ARG _docdir=/usr/share/doc
+
+RUN yum install -y epel-release
+RUN yum install -y gcc zlib-devel python3 make unzip zip gzip tar SDL2-devel
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY Makefile.am Makefile.in configure.ac configure config.h.in zziplib.spec src/
+COPY uses src/uses
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && sh ../configure --libdir=$_libdir --with-docdir=$_docdir --disable-static --enable-sdl
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-build.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-build.dockerfile
new file mode 100644
index 00000000000..4509b68d9ff
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-build.dockerfile
@@ -0,0 +1,22 @@
+FROM centos:7.7.1908
+ARG no_check=false
+ARG no_install=false
+
+RUN yum install -y epel-release
+RUN yum install -y gcc zlib-devel python3 cmake3 make unzip zip gzip tar
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake3 ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-destdir-sdl2.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-destdir-sdl2.dockerfile
new file mode 100644
index 00000000000..722b2c075d8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-destdir-sdl2.dockerfile
@@ -0,0 +1,22 @@
+FROM centos:7.7.1908
+ARG no_check=false
+ARG no_install=false
+
+RUN yum install -y epel-release
+RUN yum install -y gcc zlib-devel python3 cmake3 make unzip zip gzip tar SDL2-devel
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake3 ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install DESTDIR=/new)
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-docs.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-docs.dockerfile
new file mode 100644
index 00000000000..2d8c9926409
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-docs.dockerfile
@@ -0,0 +1,21 @@
+FROM centos:7.7.1908
+ARG no_build=false
+
+RUN yum install -y epel-release
+RUN yum install -y gcc zlib-devel python3 cmake3 make unzip zip gzip tar
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake3 ..
+RUN $no_build || (cd src/build && make)
+RUN cd src/build && make docs VERBOSE=1
+RUN cd src/build && make install-docs VERBOSE=1
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-sdl2.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-sdl2.dockerfile
new file mode 100644
index 00000000000..cad66acf798
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos7-sdl2.dockerfile
@@ -0,0 +1,22 @@
+FROM centos:7.7.1908
+ARG no_check=false
+ARG no_install=false
+
+RUN yum install -y epel-release
+RUN yum install -y gcc zlib-devel python3 cmake3 make unzip zip gzip tar SDL2-devel
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake3 ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-am-build.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-am-build.dockerfile
new file mode 100644
index 00000000000..e9dbe4e5dc2
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-am-build.dockerfile
@@ -0,0 +1,26 @@
+FROM centos:8.1.1911
+ARG no_check=false
+ARG no_install=false
+
+ARG _libdir=/usr/local/lib64
+ARG _docdir=/usr/share/doc
+
+RUN yum install -y gcc zlib-devel python3 cmake make unzip zip gzip tar diffutils
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY Makefile.am Makefile.in configure.ac configure config.h.in zziplib.spec src/
+COPY uses src/uses
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && sh ../configure --libdir=$_libdir --with-docdir=$_docdir --disable-static
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
+
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-am-sdl2.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-am-sdl2.dockerfile
new file mode 100644
index 00000000000..bfcb16f2f5e
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-am-sdl2.dockerfile
@@ -0,0 +1,31 @@
+FROM centos:8.1.1911
+ARG no_check=false
+ARG no_install=false
+
+ARG _libdir=/usr/local/lib64
+ARG _docdir=/usr/share/doc
+
+RUN yum install -y yum-utils
+RUN yum-config-manager --set-enabled PowerTools
+RUN ls -l /etc/yum.repos.d
+RUN cat /etc/yum.repos.d/CentOS-PowerTools.repo
+RUN yum search sdl
+RUN yum install -y gcc zlib-devel python3 cmake make unzip zip gzip tar diffutils SDL2-devel
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY Makefile.am Makefile.in configure.ac configure config.h.in zziplib.spec src/
+COPY uses src/uses
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && sh ../configure --libdir=$_libdir --with-docdir=$_docdir --disable-static --enable-sdl
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
+
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-build.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-build.dockerfile
new file mode 100644
index 00000000000..7679491571e
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-build.dockerfile
@@ -0,0 +1,22 @@
+FROM centos:8.1.1911
+ARG no_check=false
+ARG no_install=false
+
+RUN yum install -y gcc zlib-devel python3 cmake make unzip zip gzip tar diffutils
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
+
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-destdir-sdl2.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-destdir-sdl2.dockerfile
new file mode 100644
index 00000000000..b472beb7fa4
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-destdir-sdl2.dockerfile
@@ -0,0 +1,26 @@
+FROM centos:8.1.1911
+ARG no_check=false
+ARG no_install=false
+
+RUN yum install -y yum-utils
+RUN yum-config-manager --set-enabled PowerTools
+RUN ls -l /etc/yum.repos.d
+RUN cat /etc/yum.repos.d/CentOS-PowerTools.repo
+RUN yum search sdl
+RUN yum install -y gcc zlib-devel python3 cmake make unzip zip gzip tar diffutils SDL2-devel
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install DESTDIR=/new)
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-sdl2.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-sdl2.dockerfile
new file mode 100644
index 00000000000..af35fb9a95a
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/centos8-sdl2.dockerfile
@@ -0,0 +1,26 @@
+FROM centos:8.1.1911
+ARG no_check=false
+ARG no_install=false
+
+RUN yum install -y yum-utils
+RUN yum-config-manager --set-enabled PowerTools
+RUN ls -l /etc/yum.repos.d
+RUN cat /etc/yum.repos.d/CentOS-PowerTools.repo
+RUN yum search sdl
+RUN yum install -y gcc zlib-devel python3 cmake make unzip zip gzip tar diffutils SDL2-devel
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/opensuse15-build.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/opensuse15-build.dockerfile
new file mode 100644
index 00000000000..b118a0edba7
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/opensuse15-build.dockerfile
@@ -0,0 +1,22 @@
+FROM opensuse/leap:15.1
+ARG no_check=false
+ARG no_install=false
+
+RUN zypper refresh repo-oss
+RUN zypper install -r repo-oss -y gcc zlib-devel python3 cmake unzip zip gzip tar
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/opensuse15-sdl2.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/opensuse15-sdl2.dockerfile
new file mode 100644
index 00000000000..8da9cfdae73
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/opensuse15-sdl2.dockerfile
@@ -0,0 +1,24 @@
+FROM opensuse/leap:15.1
+ARG no_check=false
+ARG no_install=false
+# -DMAKE_INSTALL_PREFIX:PATH=/usr
+
+RUN zypper refresh repo-oss
+RUN zypper install -r repo-oss -y gcc zlib-devel python3 cmake unzip zip gzip tar libSDL2-devel
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check VERBOSE=1)
+RUN $no_install || (cd src/build && make install)
+
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-32bit.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-32bit.dockerfile
new file mode 100644
index 00000000000..60fc669ef28
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-32bit.dockerfile
@@ -0,0 +1,23 @@
+FROM 32bit/ubuntu:16.04
+ARG no_check=false
+ARG no_install=false
+
+RUN apt-get update
+RUN apt-get install -y gcc zlib1g-dev python3 cmake unzip zip gzip tar pkg-config
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
+
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-azure.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-azure.dockerfile
new file mode 100644
index 00000000000..9f92be60415
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-azure.dockerfile
@@ -0,0 +1,28 @@
+FROM ubuntu:16.04
+ARG no_check=false
+ARG no_install=false
+
+RUN apt-get update
+RUN apt-get install -y gcc zlib1g-dev python3 cmake zip gzip tar pkg-config
+RUN apt-get install -y unzip
+# RUN apt-get install -y libsdl2-dev
+RUN apt-get install -y --fix-broken --ignore-missing python3-wheel || true
+RUN apt-get install -y --fix-broken --ignore-missing python3-pip || true
+RUN pip3 install unittest-xml-reporting
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake .. -DTESTFLAGS=--xmlresults=zziptests.tmp
+RUN cd src/build && make all
+RUN $no_check || (cd src/build && make check VERBOSE=1) || true
+RUN $no_install || (cd src/build && make install)
+
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-build.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-build.dockerfile
new file mode 100644
index 00000000000..a5b337c0713
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-build.dockerfile
@@ -0,0 +1,23 @@
+FROM ubuntu:16.04
+ARG no_check=false
+ARG no_install=false
+
+RUN apt-get update
+RUN apt-get install -y gcc zlib1g-dev python3 cmake unzip zip gzip tar pkg-config
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
+
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-sdl2.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-sdl2.dockerfile
new file mode 100644
index 00000000000..48d2fc7f7c1
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu16-sdl2.dockerfile
@@ -0,0 +1,24 @@
+FROM ubuntu:16.04
+ARG no_check=false
+ARG no_install=false
+
+RUN apt-get update
+RUN apt-get install -y gcc zlib1g-dev python3 cmake unzip zip gzip tar pkg-config libsdl2-dev
+## libsdl2-dev is on "universe"
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
+
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu18-build.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu18-build.dockerfile
new file mode 100644
index 00000000000..257886c6cda
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/ubuntu18-build.dockerfile
@@ -0,0 +1,23 @@
+FROM ubuntu:18.04
+ARG no_check=false
+ARG no_install=false
+
+RUN apt-get update
+RUN apt-get install -y gcc zlib1g-dev python3 cmake unzip zip gzip tar pkg-config
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN mkdir src/build
+RUN cd src/build && cmake ..
+RUN cd src/build && make
+RUN $no_check || (cd src/build && make check)
+RUN $no_install || (cd src/build && make install)
+
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/windows-shared-x64.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/windows-shared-x64.dockerfile
new file mode 100644
index 00000000000..8689b5db1b5
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/windows-shared-x64.dockerfile
@@ -0,0 +1,29 @@
+FROM dockcross/windows-shared-x64:latest
+ARG no_check=false
+ARG no_install=false
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN { echo "[requires]" \
+ ; echo "zlib/1.2.11" \
+ ; echo "" \
+ ; echo "[generators]" \
+ ; echo "cmake_paths" \
+ ; } > src/conanfile.txt
+
+RUN mkdir src/build
+RUN cd src/build && conan install ..
+RUN cd src/build && cmake .. -DCMAKE_TOOLCHAIN_FILE=./conan_paths.cmake -DBUILD_STATIC_LIBS=OFF -DCMAKE_SYSTEM_NAME=Windows
+RUN cd src/build && cmake --build .
+# RUN $no_check || (cd src/build && make check)
+# RUN $no_install || (cd src/build && make install)
+RUN cd src/build && cmake --build . --target install
+
diff --git a/Build/source/libs/zziplib/zziplib-src/testbuilds/windows-static-x64.dockerfile b/Build/source/libs/zziplib/zziplib-src/testbuilds/windows-static-x64.dockerfile
new file mode 100644
index 00000000000..183e853c8ef
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/testbuilds/windows-static-x64.dockerfile
@@ -0,0 +1,29 @@
+FROM dockcross/windows-static-x64:latest
+ARG no_check=false
+ARG no_install=false
+
+RUN mkdir src
+COPY CMakeLists.txt README COPYING.LIB ChangeLog src/
+COPY CMakeScripts src/CMakeScripts
+COPY bins src/bins
+COPY docs src/docs
+COPY test src/test
+COPY SDL src/SDL
+COPY zzipwrap src/zzipwrap
+COPY zzip src/zzip
+
+RUN { echo "[requires]" \
+ ; echo "zlib/1.2.11" \
+ ; echo "" \
+ ; echo "[generators]" \
+ ; echo "cmake_paths" \
+ ; } > src/conanfile.txt
+
+RUN mkdir src/build
+RUN cd src/build && conan install ..
+RUN cd src/build && cmake .. -DCMAKE_TOOLCHAIN_FILE=./conan_paths.cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_SYSTEM_NAME=Windows
+RUN cd src/build && cmake --build .
+# RUN $no_check || (cd src/build && make check)
+# RUN $no_install || (cd src/build && make install)
+RUN cd src/build && cmake --build . --target install
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/CMakeLists.txt b/Build/source/libs/zziplib/zziplib-src/zzip/CMakeLists.txt
new file mode 100644
index 00000000000..a9f6e3ae2fc
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/CMakeLists.txt
@@ -0,0 +1,343 @@
+cmake_minimum_required (VERSION 3.1)
+project(zzip VERSION "0.13.71" LANGUAGES C)
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeScripts")
+
+# generate _config.h
+include ( CheckIncludeFiles )
+include ( CheckFunctionExists )
+include ( CheckSymbolExists )
+include ( CheckTypeSize )
+include ( TestBigEndian )
+include ( GNUInstallDirs )
+include ( JoinPaths )
+
+# options ###########################################################
+option(BUILD_SHARED_LIBS "Build a shared library" ON)
+option(BUILD_STATIC_LIBS "Build the static library" OFF)
+option(MSVC_STATIC_RUNTIME "Build with static runtime libs (/MT)" ON)
+option(ZZIPMMAPPED "Build libzzipmmapped (not fully portable)" ON)
+option(ZZIPFSEEKO "Build libzzipfseeko (based on posix.1 api)" ON)
+option(ZZIPCOMPAT "Build compatibility with old libzzip releases" ON)
+option(ZZIPLIBTOOL "Ensure binary compatibility with libtool" ON)
+
+# used in zzip/_config.h
+set(ZZIP_PACKAGE "${PROJECT_NAME}lib")
+set(ZZIP_VERSION "${PROJECT_VERSION}")
+set(ZZIP_PACKAGE_NAME "${PROJECT_NAME}lib")
+set(ZZIP_PACKAGE_VERSION "${PROJECT_VERSION}")
+
+if(ZZIPCOMPAT)
+find_package ( UnixCommands REQUIRED ) # bash cp mv rm gzip tar
+endif()
+
+check_include_files ( byteswap.h ZZIP_HAVE_BYTESWAP_H )
+check_include_files ( direct.h ZZIP_HAVE_DIRECT_H )
+
+if(NOT ANDROID)
+ check_include_files ( dirent.h ZZIP_HAVE_DIRENT_H )
+endif()
+
+check_include_files ( dlfcn.h ZZIP_HAVE_DLFCN_H )
+check_include_files ( fnmatch.h ZZIP_HAVE_FNMATCH_H )
+check_include_files ( inttypes.h ZZIP_HAVE_INTTYPES_H )
+check_include_files ( io.h ZZIP_HAVE_IO_H )
+check_include_files ( memory.h ZZIP_HAVE_MEMORY_H )
+check_include_files ( ndir.h ZZIP_HAVE_NDIR_H )
+check_include_files ( stdint.h ZZIP_HAVE_STDINT_H )
+check_include_files ( stdlib.h ZZIP_HAVE_STDLIB_H )
+check_function_exists ( strcasecmp ZZIP_HAVE_STRCASECMP )
+check_include_files ( strings.h ZZIP_HAVE_STRINGS_H )
+check_include_files ( string.h ZZIP_HAVE_STRING_H )
+check_function_exists ( strndup ZZIP_HAVE_STRNDUP )
+check_include_files ( "sys/dir.h" ZZIP_HAVE_SYS_DIR_H )
+check_include_files ( "sys/int_types.h" ZZIP_HAVE_SYS_INT_TYPES_H )
+check_include_files ( "sys/mman.h" ZZIP_HAVE_SYS_MMAN_H )
+check_include_files ( "sys/ndir.h" ZZIP_HAVE_SYS_NDIR_H )
+check_include_files ( "sys/param.h" ZZIP_HAVE_SYS_PARAM_H )
+check_include_files ( "sys/stat.h" ZZIP_HAVE_SYS_STAT_H )
+check_include_files ( "sys/types.h" ZZIP_HAVE_SYS_TYPES_H )
+check_include_files ( unistd.h ZZIP_HAVE_UNISTD_H )
+check_include_files ( winbase.h ZZIP_HAVE_WINBASE_H )
+check_include_files ( windows.h ZZIP_HAVE_WINDOWS_H )
+check_include_files ( winnt.h ZZIP_HAVE_WINNT_H )
+set ( ZZIP_HAVE_ZLIB_H 1 )
+
+check_type_size ( int ZZIP_SIZEOF_INT )
+check_type_size ( long ZZIP_SIZEOF_LONG )
+check_type_size ( short ZZIP_SIZEOF_SHORT )
+check_include_files ( "stdlib.h;stdarg.h;string.h;float.h" ZZIP_STDC_HEADERS )
+test_big_endian ( ZZIP_WORDS_BIGENDIAN )
+
+# simplified largefile support detection for unix
+set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE_SOURCE -Doff_t_32=off_t)
+check_type_size( off_t_32 ZZIP_SIZEOF_OFF_T_32 )
+set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE_SOURCE -Doff_t_64=off_t -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES)
+check_type_size( off_t_64 ZZIP_SIZEOF_OFF_T_64 )
+set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE)
+check_type_size( off64_t ZZIP_SIZEOF_OFF64_T )
+
+if(ZZIP_SIZEOF_OFF_T_32)
+ message(STATUS "found sizeof(off_t/32)=${ZZIP_SIZEOF_OFF_T_32} and sizeof(off_t/64)=${ZZIP_SIZEOF_OFF_T_64}")
+ if(NOT ZZIP_SIZEOF_OFF_T_32 EQUAL ZZIP_SIZEOF_OFF_T_64)
+ set(ZZIP_LARGEFILE_SENSITIVE 1)
+ # this will turn into ZZIP_LARGEFILE_RENAME so that zzip_opendir becomes zzip_opendir64 in the lib
+ # which is needed on Linux/Solaris where the default zzip_opendir is expected to use a 32bit off_t
+ message(STATUS "system is large file sensitive - do rename symbols to xx64")
+ set(largefiles -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES)
+ endif()
+endif()
+
+configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/_config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/_config.h )
+
+# Zlib library needed
+find_package ( ZLIB REQUIRED )
+
+if(UNIX)
+ add_definitions(
+ -Wpointer-arith
+ -Wsign-compare
+ -Wmissing-declarations
+ # -Wdeclaration-after-statement
+ -Werror-implicit-function-declaration
+ -Wstrict-aliasing
+ -Warray-bounds
+ )
+endif()
+
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+add_definitions ( -DHAVE_CONFIG_H )
+
+set(RELNUM "${PROJECT_VERSION_MAJOR}")
+set(VERNUM "${PROJECT_VERSION_MINOR}")
+set(FIXNUM "0.${PROJECT_VERSION_PATCH}")
+# the "0." on FIXNUM is just for compatibility with automake's libtool.
+
+set(srcdir ${CMAKE_CURRENT_SOURCE_DIR})
+set(outdir ${CMAKE_CURRENT_BINARY_DIR})
+
+# targets ############################################################
+
+# libzlib library
+set(libzzip_SRCS
+ dir.c
+ err.c
+ file.c
+ info.c
+ plugin.c
+ stat.c
+ write.c
+ zip.c
+ fetch.c)
+
+set(libzzip_HDRS
+ lib.h
+ zzip.h
+ format.h
+ types.h
+ conf.h
+ _msvc.h
+ file.h
+ info.h
+ plugin.h
+ write.h
+ fetch.h
+ stdint.h
+ zzip32.h
+ autoconf.h
+ ${outdir}/_config.h)
+
+set(libzzip_INCS
+ __debug.h
+ __dirent.h
+ __errno.h
+ __fnmatch.h
+ __hints.h
+ __mkdir.h
+ __mmap.h
+ __string.h)
+
+set(libzzipfseeko_SRCS fseeko.c fetch.c)
+set(libzzipfseeko_HDRS fseeko.h)
+
+set(libzzipmmapped_SRCS mmapped.c memdisk.c fetch.c)
+set(libzzipmmapped_HDRS mmapped.h memdisk.h)
+
+
+add_library(libzzip ${libzzip_SRCS} )
+target_link_libraries(libzzip ZLIB::ZLIB )
+target_include_directories (libzzip PRIVATE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
+
+if(ZZIPFSEEKO)
+add_library(libzzipfseeko ${libzzipfseeko_SRCS} )
+target_link_libraries(libzzipfseeko ZLIB::ZLIB )
+target_include_directories (libzzipfseeko PRIVATE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
+endif()
+
+if(ZZIPMMAPPED)
+add_library(libzzipmmapped ${libzzipmmapped_SRCS} )
+target_link_libraries(libzzipmmapped ZLIB::ZLIB )
+target_include_directories (libzzipmmapped PRIVATE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
+endif()
+
+set_target_properties(libzzip PROPERTIES OUTPUT_NAME "zzip" RELEASE_POSTFIX "-${RELNUM}")
+SET_TARGET_PROPERTIES(libzzip PROPERTIES VERSION ${VERNUM}.${FIXNUM} SOVERSION ${VERNUM})
+
+if(ZZIPFSEEKO)
+set_target_properties(libzzipfseeko PROPERTIES OUTPUT_NAME "zzipfseeko" RELEASE_POSTFIX "-${RELNUM}")
+SET_TARGET_PROPERTIES(libzzipfseeko PROPERTIES VERSION ${VERNUM}.${FIXNUM} SOVERSION ${VERNUM})
+endif()
+
+if(ZZIPMMAPPED)
+set_target_properties(libzzipmmapped PROPERTIES OUTPUT_NAME "zzipmmapped" RELEASE_POSTFIX "-${RELNUM}")
+SET_TARGET_PROPERTIES(libzzipmmapped PROPERTIES VERSION ${VERNUM}.${FIXNUM} SOVERSION ${VERNUM})
+endif()
+
+if(ZZIPCOMPAT)
+add_custom_command(OUTPUT compat/zzip.h
+ COMMAND ${BASH} -c "rm -rf compat; mkdir compat"
+ COMMAND ${BASH} -c "echo '#ifndef ZZIP_WARNING' > compat/zzip.h"
+ COMMAND ${BASH} -c "echo '#define ZZIP_WARNING 1' >>compat/zzip.h"
+ COMMAND ${BASH} -c "echo '#ifdef __GNUC__' >>compat/zzip.h"
+ COMMAND ${BASH} -c "echo '#warning do no not use <zzip.h>, update to include <zzip/lib.h>' >>compat/zzip.h"
+ COMMAND ${BASH} -c "echo '#else' >>compat/zzip.h"
+ COMMAND ${BASH} -c "echo '#error do no not use <zzip.h>, update to include <zzip/lib.h>' >>compat/zzip.h"
+ COMMAND ${BASH} -c "echo '#endif' >>compat/zzip.h"
+ COMMAND ${BASH} -c "echo '#endif' >>compat/zzip.h"
+ COMMAND ${BASH} -c "echo '#include \"zzip/lib.h\"' >>compat/zzip.h"
+ COMMAND ${BASH} -c "sed -e 's|zzip.h|zziplib.h|' -e 's|zzip/lib.h|zzip/zzip.h|' \
+ compat/zzip.h >compat/zziplib.h"
+ COMMAND ${BASH} -c "sed -e 's|zzip.h|zzip-io.h|' -e 's|zzip/lib.h|zzip/plugin.h|' \
+ compat/zzip.h >compat/zzip-io.h"
+ BYPRODUCTS compat/zziplib.h compat/zzip-io.h
+ VERBATIM)
+add_custom_target(compat ALL DEPENDS compat/zzip.h)
+endif()
+
+if(UNIX)
+join_paths(libdir "\${prefix}" "${CMAKE_INSTALL_LIBDIR}")
+join_paths(includedir "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
+add_custom_command(OUTPUT zziplib.pc
+ COMMAND ${BASH} -c "echo 'prefix=${CMAKE_INSTALL_PREFIX}' > zziplib.pc"
+ COMMAND ${BASH} -c "echo 'libdir=${libdir}' >> zziplib.pc"
+ COMMAND ${BASH} -c "echo 'includedir=${includedir}' >> zziplib.pc"
+ COMMAND ${BASH} -c "echo 'package=zziplib' >> zziplib.pc"
+ COMMAND ${BASH} -c "echo 'suffix=${CMAKE_EXECUTABLE_SUFFIX}' >> zziplib.pc"
+ COMMAND ${BASH} -c "echo '' >> zziplib.pc"
+ COMMAND ${BASH} -c "echo 'Name: ${PROJECT_NAME}lib' >> zziplib.pc"
+ COMMAND ${BASH} -c "echo 'Description: ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API' >> zziplib.pc"
+ COMMAND ${BASH} -c "echo 'Version: ${PROJECT_VERSION}' >> zziplib.pc"
+ COMMAND ${BASH} -c "echo 'Requires: zlib' >> zziplib.pc"
+ COMMAND ${BASH} -c "echo 'Libs: -L\${libdir} -lzzip' >> zziplib.pc"
+ COMMAND ${BASH} -c "echo 'Cflags: -I\${includedir}' >> zziplib.pc"
+ COMMAND ${BASH} -c "sed -e 's/-lzzip/-lzzipmmapped/' -e 's/zziplib/zzipmmapped/' zziplib.pc > zzipmmapped.pc"
+ COMMAND ${BASH} -c "sed -e 's/-lzzip/-lzzipfseeko/' -e 's/zziplib/zzipfseeko/' zziplib.pc > zzipfseeko.pc"
+ BYPRODUCTS zzipmmapped.pc zzipfseeko.pc
+ VERBATIM)
+add_custom_target(pkgconfig ALL DEPENDS zziplib.pc)
+endif()
+
+# install ########################################################
+set(outdir ${CMAKE_CURRENT_BINARY_DIR})
+
+if(UNIX)
+install(FILES ${outdir}/zziplib.pc ${outdir}/zzipmmapped.pc ${outdir}/zzipfseeko.pc
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" )
+endif()
+
+install(FILES ${libzzip_HDRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/zzip )
+install(TARGETS libzzip
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+if(ZZIPFSEEKO)
+install(FILES ${libzzipfseeko_HDRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/zzip )
+install(TARGETS libzzipfseeko
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+endif()
+
+if(ZZIPMMAPPED)
+install(FILES ${libzzipmmapped_HDRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/zzip )
+install(TARGETS libzzipmmapped
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+endif()
+
+if(ZZIPCOMPAT)
+ install(FILES ${outdir}/compat/zzip.h ${outdir}/compat/zziplib.h ${outdir}/compat/zzip-io.h
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ if(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG)
+ set(lib ${CMAKE_SHARED_LIBRARY_PREFIX})
+ set(dll ${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
+ get_target_property(libname libzzip OUTPUT_NAME)
+ get_target_property(librelease libzzip RELEASE_POSTFIX)
+ get_target_property(libversion libzzip VERSION)
+ install(CODE "execute_process(COMMAND bash -c \"set -e
+ cd $DESTDIR/${libdir}
+ [ -f ${lib}${libname}${librelease}${dll}.${libversion} ] || exit 0
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.10
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.11
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.12
+ \")")
+ endif()
+endif()
+
+if(ZZIPLIBTOOL)
+ if(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG)
+ set(lib ${CMAKE_SHARED_LIBRARY_PREFIX})
+ set(dll ${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
+ get_target_property(libname libzzip OUTPUT_NAME)
+ get_target_property(librelease libzzip RELEASE_POSTFIX)
+ get_target_property(libversion libzzip VERSION)
+ install(CODE "execute_process(COMMAND bash -c \"set -e
+ cd $DESTDIR/${libdir}
+ [ -f ${lib}${libname}${librelease}${dll}.${libversion} ] || exit 0
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${dll}
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.10
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.11
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.12
+ \")")
+ get_target_property(libname libzzipfseeko OUTPUT_NAME)
+ get_target_property(librelease libzzipfseeko RELEASE_POSTFIX)
+ get_target_property(libversion libzzipfseeko VERSION)
+ install(CODE "execute_process(COMMAND bash -c \"set -e
+ cd $DESTDIR/${libdir}
+ [ -f ${lib}${libname}${librelease}${dll}.${libversion} ] || exit 0
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${dll}
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.10
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.11
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.12
+ \")")
+ get_target_property(libname libzzipmmapped OUTPUT_NAME)
+ get_target_property(librelease libzzipmmapped RELEASE_POSTFIX)
+ get_target_property(libversion libzzipmmapped VERSION)
+ install(CODE "execute_process(COMMAND bash -c \"set -e
+ cd $DESTDIR/${libdir}
+ [ -f ${lib}${libname}${librelease}${dll}.${libversion} ] || exit 0
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${dll}
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.10
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.11
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${librelease}${dll}.12
+ \")")
+ endif()
+endif()
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/Makefile.am b/Build/source/libs/zziplib/zziplib-src/zzip/Makefile.am
new file mode 100644
index 00000000000..0d7ed34678f
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/Makefile.am
@@ -0,0 +1,200 @@
+AUTOMAKE_OPTIONS = 1.5 foreign
+AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2
+DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir)
+DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4
+
+lib_LTLIBRARIES = libzzip.la libzzipmmapped.la libzzipfseeko.la
+zzipdir = ${includedir}/zzip
+zzip_HEADERS = $(libzzip_la_headers) \
+ $(libzzipmmapped_la_headers) \
+ $(libzzipfseeko_la_headers)
+noinst_HEADERS = __debug.h __hints.h __mmap.h __dirent.h __fnmatch.h __string.h __mkdir.h __errno.h
+#
+VERSION_INFO=@VERSION_INFO@
+RELEASE_INFO=@RELEASE_INFO@
+THREAD_SAFE=@THREAD_SAFE@
+#
+
+libzzip_la_SOURCES = \
+ zip.c \
+ file.c \
+ dir.c \
+ stat.c \
+ info.c \
+ err.c \
+ plugin.c \
+ write.c \
+ fetch.c
+libzzip_la_headers = \
+ stdint.h \
+ file.h \
+ plugin.h \
+ lib.h \
+ zzip.h \
+ zzip32.h \
+ write.h \
+ fetch.h \
+ format.h \
+ info.h \
+ autoconf.h \
+ types.h \
+ conf.h \
+ _config.h \
+ _msvc.h
+libzzip_la_LDFLAGS= @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \
+ $(THREAD_SAFE)
+libzzip_la_LIBADD= -lz @RESOLVES@
+
+libzzipmmapped_la_SOURCES = mmapped.c memdisk.c fetch.c
+libzzipmmapped____headers = mmapped.h memdisk.h fetch.h
+libzzipmmapped_la_headers = mmapped.h memdisk.h
+libzzipmmapped_la_LDFLAGS= @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \
+ $(THREAD_SAFE)
+libzzipmmapped_la_LIBADD= -lz @RESOLVES@
+
+libzzipfseeko_la_SOURCES = fseeko.c fetch.c
+libzzipfseeko____headers = fseeko.h fetch.h
+libzzipfseeko_la_headers = fseeko.h
+libzzipfseeko_la_LDFLAGS= @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \
+ $(THREAD_SAFE)
+libzzipfseeko_la_LIBADD= -lz @RESOLVES@
+
+WCC10_DIST = zziplib.wpj
+WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt
+
+EXTRA_DIST = $(WCC10_DIST) _msvc.sed
+CONFIG_CLEAN_FILES = _config.h
+MAINTAINERCLEANFILES = _msvc.h
+CLEANFILES = $(WCC10_CLEAN) *.pc *.omf *~ *.tmp *.tmp.*
+DISTCLEANFILES = *-uninstalled.sh _msvc.in zziplib.pc.in
+
+# here is some backward compatibility with version 0.10.* of zziplib
+install-data-hook : install-zzipHEADERS
+ echo '#ifndef ZZIP_WARNING' > $(DESTDIR)$(includedir)/zzip.h
+ echo '#define ZZIP_WARNING 1' >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#ifdef __GNUC__' >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#warning do no not use <zzip.h>, update to include <zzip/lib.h>'\
+ >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#else' >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#error do no not use <zzip.h>, update to include <zzip/lib.h>'\
+ >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#endif' >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#endif' >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#include "zzip/lib.h"' >>$(DESTDIR)$(includedir)/zzip.h
+ sed -e 's|zzip.h|zziplib.h|' -e 's|zzip/lib.h|zzip/zzip.h|' \
+ $(DESTDIR)$(includedir)/zzip.h >$(DESTDIR)$(includedir)/zziplib.h
+ sed -e 's|zzip.h|zzip-io.h|' -e 's|zzip/lib.h|zzip/plugin.h|' \
+ $(DESTDIR)$(includedir)/zzip.h >$(DESTDIR)$(includedir)/zzip-io.h
+
+install-exec-hook:
+ @ for i in . $(DESTDIR)$(libdir)/libzzip*.so.13 \
+ ; do test -d $$i && continue ; test -f $$i || continue \
+ ; lib=`basename "$$i" .so.13` \
+ ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.10" \
+ ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.10) \
+ ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.11" \
+ ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.11) \
+ ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.12" \
+ ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.12) \
+ ; done ; true
+
+uninstall-local :
+ (cd $(DESTDIR)$(includedir) && rm zziplib.h zzip.h zzip-io.h)
+
+
+INDENT = indent
+INDENTFLAGS = \
+--blank-lines-after-procedures \
+--blank-lines-before-block-comments \
+--brace-indent0 \
+--braces-after-if-line \
+--case-indentation0 \
+--cuddle-else \
+--space-after-cast \
+--honour-newlines \
+--indent-level4 \
+--line-length80 \
+--continue-at-parentheses \
+--leave-preprocessor-space \
+--dont-break-function-decl-args \
+--dont-cuddle-do-while \
+--dont-format-first-column-comments \
+--no-space-after-function-call-names \
+--no-space-after-parentheses \
+--no-tabs \
+--ignore-profile \
+--procnames-start-lines \
+--space-after-for \
+--space-after-if \
+--space-after-while \
+--space-special-semicolon
+
+DIFF_U0 = diff -U0
+# __indent1 = "s|^\\([^{};]*if[^{};]*\\)\\(return[^{};]*;\\)|\\1 { \\2 }|"
+__indent1 = ":begin"
+__indent2 = "s|^\\([^{}';]*\\)\\({[^{}']*}\\)\\([^{}';]*\\)$$|\\1(' \\2 ');\\3|"
+__indent3 = "s|___+[;].*|/*&*/|"
+__indent4 = ":end"
+__indent6 = "s|!\\([^ !=)]\\)|! \\1|g"
+__indent7 = "s|(' \\({[^{}']*}\\) ');|\\1|"
+__indent8 = "s|/[*]\\(___+[;].*\\)[*]/$$|\\1|"
+__indent9 = ":end"
+indent-check:
+ for file in $(srcdir)/*.c ; do f=`basename "$$file"` \
+ ; sed -e $(__indent1) -e $(__indent2) -e $(__indent3) -e $(__indent4) \
+ $(INDENTBEFORE) $$file \
+ | $(INDENT) $(INDENTFLAGS) $(INDENTOPTS) -st - \
+ | sed -e $(__indent6) -e $(__indent7) -e $(__indent8) -e $(__indent9) \
+ $(INDENTAFTER) > $$f.tmp \
+ ; echo $(DIFF_U0) "$$file" "$$f.tmp" \
+ ; $(DIFF_U0) "$$file" "$$f.tmp" ; done
+
+i:
+ @ f=`basename $(file) .tmp` \
+ ; echo cp $(file) $(srcdir)/$$f ; sleep 2 \
+ ; cp $(file) $(srcdir)/$$f
+
+# ----------------------------------------------------------------------
+pkgconfigdir=$(libdir)/pkgconfig
+pkgconfig_HEADERS= zzip-zlib-config.pc zziplib.pc \
+ zzipmmapped.pc zzipfseeko.pc
+
+zziplib.pc : Makefile
+ (cd .. && sh config.status zzip/zziplib.pc)
+
+zzip-zlib-config.pc : Makefile
+ @ echo "zlib_libs=@ZLIB_LDIR@ -lz" >$@
+ @ echo "zlib_cflags=@ZLIB_INCL@" >>$@
+ @ echo " " >>$@
+ @ echo "Name: zzip-zlib-config" >>$@
+ @ echo "Version: @ZLIB_VERSION@" >>$@
+ @ echo "Description: ZLib Config (for ZZipLib)" >>$@
+ echo 'Libs: $${zlib_libs}' >>$@
+ echo 'Cflags: $${zlib_cflags}' >>$@
+
+zzipmmapped.pc : zziplib.pc
+ sed -e 's/-lzzip/-lzzipmmapped/' -e 's/zziplib/zzipmmapped/' \
+ zziplib.pc >$@
+zzipfseeko.pc : zziplib.pc
+ sed -e 's/-lzzip/-lzzipfseeko/' -e 's/zziplib/zzipfseeko/' \
+ zziplib.pc >$@
+
+__zziplib.pc : Makefile
+ @ echo "prefix=$(prefix)" >$@
+ @ echo "libdir=$(libdir)" >>$@
+ @ echo "includedir=$(includedir)" >>$@
+ @ echo "largefile=$(LARGEFILE_CFLAGS)" >>$@
+ @ echo "zlib_libs=@ZLIB_LDIR@ -lz" >>$@
+ @ echo "zlib_cflags=@ZLIB_INCL@" >>$@
+ @ echo " " >>$@
+ @ echo "Name: zziplib" >>$@
+ @ echo "Version: $(VERSION)" >>$@
+ @ head $(top_srcdir)/$(PACKAGE).spec \
+ | grep Summary | sed -e s,Summary,Description, >> $@
+ echo 'Requires: zzip-zlib-config' >>$@
+ echo 'Libs: -L$${libdir} -lzzip' >>$@
+ echo 'Cflags: $${largefile} -I$${includedir}' >>$@
+
+# ----------------------------------------------------------------------
+.c.i :
+ $(COMPILE) -E $< >$@
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/Makefile.in b/Build/source/libs/zziplib/zziplib-src/zzip/Makefile.in
new file mode 100644
index 00000000000..9e199a12776
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/Makefile.in
@@ -0,0 +1,983 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = zzip
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
+ $(top_srcdir)/m4/ac_set_default_paths_system.m4 \
+ $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \
+ $(top_srcdir)/m4/acx_restrict.m4 \
+ $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \
+ $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \
+ $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \
+ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
+ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
+ $(top_srcdir)/m4/ax_check_enable_debug.m4 \
+ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
+ $(top_srcdir)/m4/ax_expand_prefix.m4 \
+ $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
+ $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
+ $(top_srcdir)/m4/ax_pax_tar.m4 \
+ $(top_srcdir)/m4/ax_prefix_config_h.m4 \
+ $(top_srcdir)/m4/ax_set_version_info.m4 \
+ $(top_srcdir)/m4/ax_spec_file.m4 \
+ $(top_srcdir)/m4/ax_spec_package_version.m4 \
+ $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \
+ $(top_srcdir)/m4/ax_warning_default_pkgconfig.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/patch_libtool_on_darwin_zsh_overquoting.m4 \
+ $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \
+ $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+ $(pkgconfig_HEADERS) $(zzip_HEADERS) $(am__DIST_COMMON)
+mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+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)$(zzipdir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+libzzip_la_DEPENDENCIES =
+am_libzzip_la_OBJECTS = zip.lo file.lo dir.lo stat.lo info.lo err.lo \
+ plugin.lo write.lo fetch.lo
+libzzip_la_OBJECTS = $(am_libzzip_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 =
+libzzip_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libzzip_la_LDFLAGS) $(LDFLAGS) -o $@
+libzzipfseeko_la_DEPENDENCIES =
+am_libzzipfseeko_la_OBJECTS = fseeko.lo fetch.lo
+libzzipfseeko_la_OBJECTS = $(am_libzzipfseeko_la_OBJECTS)
+libzzipfseeko_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libzzipfseeko_la_LDFLAGS) $(LDFLAGS) \
+ -o $@
+libzzipmmapped_la_DEPENDENCIES =
+am_libzzipmmapped_la_OBJECTS = mmapped.lo memdisk.lo fetch.lo
+libzzipmmapped_la_OBJECTS = $(am_libzzipmmapped_la_OBJECTS)
+libzzipmmapped_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libzzipmmapped_la_LDFLAGS) $(LDFLAGS) \
+ -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+depcomp = $(SHELL) $(top_srcdir)/uses/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libzzip_la_SOURCES) $(libzzipfseeko_la_SOURCES) \
+ $(libzzipmmapped_la_SOURCES)
+DIST_SOURCES = $(libzzip_la_SOURCES) $(libzzipfseeko_la_SOURCES) \
+ $(libzzipmmapped_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+HEADERS = $(noinst_HEADERS) $(pkgconfig_HEADERS) $(zzip_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/uses/depcomp \
+ $(top_srcdir)/uses/mkinstalldirs
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+ASAN_CFLAGS = @ASAN_CFLAGS@
+ASAN_LIBS = @ASAN_LIBS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONFIG_FILES = @CONFIG_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4
+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@
+GNUTAR = @GNUTAR@
+GREP = @GREP@
+GTAR = @GTAR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKZIP = @MKZIP@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PAX = @PAX@
+PAX_TAR_CREATE = @PAX_TAR_CREATE@
+PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+RANLIB = @RANLIB@
+RELEASE_INFO = @RELEASE_INFO@
+RESOLVES = @RESOLVES@
+SDL = @SDL@
+SDL_GENERATE = @SDL_GENERATE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+THREAD_SAFE = @THREAD_SAFE@
+VERSION = @VERSION@
+#
+VERSION_INFO = @VERSION_INFO@
+XMLTO = @XMLTO@
+ZIPTESTS = @ZIPTESTS@
+ZLIB_INCL = @ZLIB_INCL@
+ZLIB_LDIR = @ZLIB_LDIR@
+ZLIB_VERSION = @ZLIB_VERSION@
+ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+aclocaldir = @aclocaldir@
+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@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgconfig_libdir = @pkgconfig_libdir@
+pkgconfig_libfile = @pkgconfig_libfile@
+
+# ----------------------------------------------------------------------
+pkgconfigdir = $(libdir)/pkgconfig
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = 1.5 foreign
+AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2
+DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir)
+lib_LTLIBRARIES = libzzip.la libzzipmmapped.la libzzipfseeko.la
+zzipdir = ${includedir}/zzip
+zzip_HEADERS = $(libzzip_la_headers) \
+ $(libzzipmmapped_la_headers) \
+ $(libzzipfseeko_la_headers)
+
+noinst_HEADERS = __debug.h __hints.h __mmap.h __dirent.h __fnmatch.h __string.h __mkdir.h __errno.h
+#
+libzzip_la_SOURCES = \
+ zip.c \
+ file.c \
+ dir.c \
+ stat.c \
+ info.c \
+ err.c \
+ plugin.c \
+ write.c \
+ fetch.c
+
+libzzip_la_headers = \
+ stdint.h \
+ file.h \
+ plugin.h \
+ lib.h \
+ zzip.h \
+ zzip32.h \
+ write.h \
+ fetch.h \
+ format.h \
+ info.h \
+ autoconf.h \
+ types.h \
+ conf.h \
+ _config.h \
+ _msvc.h
+
+libzzip_la_LDFLAGS = @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \
+ $(THREAD_SAFE)
+
+libzzip_la_LIBADD = -lz @RESOLVES@
+libzzipmmapped_la_SOURCES = mmapped.c memdisk.c fetch.c
+libzzipmmapped____headers = mmapped.h memdisk.h fetch.h
+libzzipmmapped_la_headers = mmapped.h memdisk.h
+libzzipmmapped_la_LDFLAGS = @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \
+ $(THREAD_SAFE)
+
+libzzipmmapped_la_LIBADD = -lz @RESOLVES@
+libzzipfseeko_la_SOURCES = fseeko.c fetch.c
+libzzipfseeko____headers = fseeko.h fetch.h
+libzzipfseeko_la_headers = fseeko.h
+libzzipfseeko_la_LDFLAGS = @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \
+ $(THREAD_SAFE)
+
+libzzipfseeko_la_LIBADD = -lz @RESOLVES@
+WCC10_DIST = zziplib.wpj
+WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt
+EXTRA_DIST = $(WCC10_DIST) _msvc.sed
+CONFIG_CLEAN_FILES = _config.h
+MAINTAINERCLEANFILES = _msvc.h
+CLEANFILES = $(WCC10_CLEAN) *.pc *.omf *~ *.tmp *.tmp.*
+DISTCLEANFILES = *-uninstalled.sh _msvc.in zziplib.pc.in
+INDENT = indent
+INDENTFLAGS = \
+--blank-lines-after-procedures \
+--blank-lines-before-block-comments \
+--brace-indent0 \
+--braces-after-if-line \
+--case-indentation0 \
+--cuddle-else \
+--space-after-cast \
+--honour-newlines \
+--indent-level4 \
+--line-length80 \
+--continue-at-parentheses \
+--leave-preprocessor-space \
+--dont-break-function-decl-args \
+--dont-cuddle-do-while \
+--dont-format-first-column-comments \
+--no-space-after-function-call-names \
+--no-space-after-parentheses \
+--no-tabs \
+--ignore-profile \
+--procnames-start-lines \
+--space-after-for \
+--space-after-if \
+--space-after-while \
+--space-special-semicolon
+
+DIFF_U0 = diff -U0
+# __indent1 = "s|^\\([^{};]*if[^{};]*\\)\\(return[^{};]*;\\)|\\1 { \\2 }|"
+__indent1 = ":begin"
+__indent2 = "s|^\\([^{}';]*\\)\\({[^{}']*}\\)\\([^{}';]*\\)$$|\\1(' \\2 ');\\3|"
+__indent3 = "s|___+[;].*|/*&*/|"
+__indent4 = ":end"
+__indent6 = "s|!\\([^ !=)]\\)|! \\1|g"
+__indent7 = "s|(' \\({[^{}']*}\\) ');|\\1|"
+__indent8 = "s|/[*]\\(___+[;].*\\)[*]/$$|\\1|"
+__indent9 = ":end"
+pkgconfig_HEADERS = zzip-zlib-config.pc zziplib.pc \
+ zzipmmapped.pc zzipfseeko.pc
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .i .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign zzip/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign zzip/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+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}; \
+ }
+
+libzzip.la: $(libzzip_la_OBJECTS) $(libzzip_la_DEPENDENCIES) $(EXTRA_libzzip_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libzzip_la_LINK) -rpath $(libdir) $(libzzip_la_OBJECTS) $(libzzip_la_LIBADD) $(LIBS)
+
+libzzipfseeko.la: $(libzzipfseeko_la_OBJECTS) $(libzzipfseeko_la_DEPENDENCIES) $(EXTRA_libzzipfseeko_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libzzipfseeko_la_LINK) -rpath $(libdir) $(libzzipfseeko_la_OBJECTS) $(libzzipfseeko_la_LIBADD) $(LIBS)
+
+libzzipmmapped.la: $(libzzipmmapped_la_OBJECTS) $(libzzipmmapped_la_DEPENDENCIES) $(EXTRA_libzzipmmapped_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libzzipmmapped_la_LINK) -rpath $(libdir) $(libzzipmmapped_la_OBJECTS) $(libzzipmmapped_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/err.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fetch.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseeko.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/info.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memdisk.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmapped.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zip.Plo@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 $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-pkgconfigHEADERS: $(pkgconfig_HEADERS)
+ @$(NORMAL_INSTALL)
+ @list='$(pkgconfig_HEADERS)'; 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_HEADER) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+ done
+
+uninstall-pkgconfigHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconfig_HEADERS)'; 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-zzipHEADERS: $(zzip_HEADERS)
+ @$(NORMAL_INSTALL)
+ @list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(zzipdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(zzipdir)" || 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)$(zzipdir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(zzipdir)" || exit $$?; \
+ done
+
+uninstall-zzipHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(zzipdir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(zzipdir)"; 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:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+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)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pkgconfigHEADERS install-zzipHEADERS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES uninstall-local \
+ uninstall-pkgconfigHEADERS uninstall-zzipHEADERS
+
+.MAKE: install-am install-data-am install-exec-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-data-hook install-dvi install-dvi-am \
+ install-exec install-exec-am install-exec-hook install-html \
+ install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-man install-pdf install-pdf-am \
+ install-pkgconfigHEADERS install-ps install-ps-am \
+ install-strip install-zzipHEADERS 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-local \
+ uninstall-pkgconfigHEADERS uninstall-zzipHEADERS
+
+.PRECIOUS: Makefile
+
+
+# here is some backward compatibility with version 0.10.* of zziplib
+install-data-hook : install-zzipHEADERS
+ echo '#ifndef ZZIP_WARNING' > $(DESTDIR)$(includedir)/zzip.h
+ echo '#define ZZIP_WARNING 1' >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#ifdef __GNUC__' >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#warning do no not use <zzip.h>, update to include <zzip/lib.h>'\
+ >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#else' >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#error do no not use <zzip.h>, update to include <zzip/lib.h>'\
+ >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#endif' >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#endif' >>$(DESTDIR)$(includedir)/zzip.h
+ echo '#include "zzip/lib.h"' >>$(DESTDIR)$(includedir)/zzip.h
+ sed -e 's|zzip.h|zziplib.h|' -e 's|zzip/lib.h|zzip/zzip.h|' \
+ $(DESTDIR)$(includedir)/zzip.h >$(DESTDIR)$(includedir)/zziplib.h
+ sed -e 's|zzip.h|zzip-io.h|' -e 's|zzip/lib.h|zzip/plugin.h|' \
+ $(DESTDIR)$(includedir)/zzip.h >$(DESTDIR)$(includedir)/zzip-io.h
+
+install-exec-hook:
+ @ for i in . $(DESTDIR)$(libdir)/libzzip*.so.13 \
+ ; do test -d $$i && continue ; test -f $$i || continue \
+ ; lib=`basename "$$i" .so.13` \
+ ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.10" \
+ ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.10) \
+ ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.11" \
+ ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.11) \
+ ; echo "$(DESTDIR)$(libdir): ln -s $$lib.so.13 $$lib.so.12" \
+ ; (cd $(DESTDIR)$(libdir) && ln -s $$lib.so.13 $$lib.so.12) \
+ ; done ; true
+
+uninstall-local :
+ (cd $(DESTDIR)$(includedir) && rm zziplib.h zzip.h zzip-io.h)
+indent-check:
+ for file in $(srcdir)/*.c ; do f=`basename "$$file"` \
+ ; sed -e $(__indent1) -e $(__indent2) -e $(__indent3) -e $(__indent4) \
+ $(INDENTBEFORE) $$file \
+ | $(INDENT) $(INDENTFLAGS) $(INDENTOPTS) -st - \
+ | sed -e $(__indent6) -e $(__indent7) -e $(__indent8) -e $(__indent9) \
+ $(INDENTAFTER) > $$f.tmp \
+ ; echo $(DIFF_U0) "$$file" "$$f.tmp" \
+ ; $(DIFF_U0) "$$file" "$$f.tmp" ; done
+
+i:
+ @ f=`basename $(file) .tmp` \
+ ; echo cp $(file) $(srcdir)/$$f ; sleep 2 \
+ ; cp $(file) $(srcdir)/$$f
+
+zziplib.pc : Makefile
+ (cd .. && sh config.status zzip/zziplib.pc)
+
+zzip-zlib-config.pc : Makefile
+ @ echo "zlib_libs=@ZLIB_LDIR@ -lz" >$@
+ @ echo "zlib_cflags=@ZLIB_INCL@" >>$@
+ @ echo " " >>$@
+ @ echo "Name: zzip-zlib-config" >>$@
+ @ echo "Version: @ZLIB_VERSION@" >>$@
+ @ echo "Description: ZLib Config (for ZZipLib)" >>$@
+ echo 'Libs: $${zlib_libs}' >>$@
+ echo 'Cflags: $${zlib_cflags}' >>$@
+
+zzipmmapped.pc : zziplib.pc
+ sed -e 's/-lzzip/-lzzipmmapped/' -e 's/zziplib/zzipmmapped/' \
+ zziplib.pc >$@
+zzipfseeko.pc : zziplib.pc
+ sed -e 's/-lzzip/-lzzipfseeko/' -e 's/zziplib/zzipfseeko/' \
+ zziplib.pc >$@
+
+__zziplib.pc : Makefile
+ @ echo "prefix=$(prefix)" >$@
+ @ echo "libdir=$(libdir)" >>$@
+ @ echo "includedir=$(includedir)" >>$@
+ @ echo "largefile=$(LARGEFILE_CFLAGS)" >>$@
+ @ echo "zlib_libs=@ZLIB_LDIR@ -lz" >>$@
+ @ echo "zlib_cflags=@ZLIB_INCL@" >>$@
+ @ echo " " >>$@
+ @ echo "Name: zziplib" >>$@
+ @ echo "Version: $(VERSION)" >>$@
+ @ head $(top_srcdir)/$(PACKAGE).spec \
+ | grep Summary | sed -e s,Summary,Description, >> $@
+ echo 'Requires: zzip-zlib-config' >>$@
+ echo 'Libs: -L$${libdir} -lzzip' >>$@
+ echo 'Cflags: $${largefile} -I$${includedir}' >>$@
+
+# ----------------------------------------------------------------------
+.c.i :
+ $(COMPILE) -E $< >$@
+
+# 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/Build/source/libs/zziplib/zziplib-src/zzip/__debug.h b/Build/source/libs/zziplib/zziplib-src/zzip/__debug.h
new file mode 100644
index 00000000000..b79e5587f64
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/__debug.h
@@ -0,0 +1,96 @@
+#ifndef __ZZIP_INTERNAL_DEBUG_H
+#define __ZZIP_INTERNAL_DEBUG_H
+
+#include <zzip/conf.h>
+#include <zzip/__hints.h>
+
+/* perhaps want to show on syslog(3) ?? */
+
+#ifdef DEBUG
+#include <stdio.h>
+#define MSG1(X1) ZZIP_FOR1 { \
+ fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
+ ); } ZZIP_END1
+#define MSG2(X1,X2) ZZIP_FOR1 { \
+ fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
+ ,X2);} ZZIP_END1
+#define MSG3(X1,X2,X3) ZZIP_FOR1 { \
+ fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
+ ,X2,X3); } ZZIP_END1
+#define MSG4(X1,X2,X3,X4) ZZIP_FOR1 { \
+ fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
+ ,X2,X3,X4); } ZZIP_END1
+#define MSG5(X1,X2,X3,X4,X5) ZZIP_FOR1 { \
+ fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
+ ,X2,X3,X4,X5); } ZZIP_END1
+#define MSG6(X1,X2,X3,X4,X5,X6) ZZIP_FOR1 { \
+ fprintf(stderr,"\n%s:%i:"X1"\n", ZZIP_FUNC,__LINE__ \
+ ,X2,X3,X4,X5,X6); } ZZIP_END1
+
+#else
+#define MSG1(X1) {}
+#define MSG2(X1,X2) {}
+#define MSG3(X1,X2,X3) {}
+#define MSG4(X1,X2,X3,X4) {}
+#define MSG5(X1,X2,X3,X4,X5) {}
+#define MSG6(X1,X2,X3,X4,X5,X6) {}
+#endif
+
+#define DBG1(X1) MSG1("DEBUG: " X1)
+#define DBG2(X1,X2) MSG2("DEBUG: " X1,X2)
+#define DBG3(X1,X2,X3) MSG3("DEBUG: " X1,X2,X3)
+#define DBG4(X1,X2,X3,X4) MSG4("DEBUG: " X1,X2,X3,X4)
+#define DBG5(X1,X2,X3,X4,X5) MSG5("DEBUG: " X1,X2,X3,X4,X5)
+#define DBG6(X1,X2,X3,X4,X5,X6) MSG6("DEBUG: " X1,X2,X3,X4,X5,X6)
+
+#define HINT1(X1) MSG1("HINT: " X1)
+#define HINT2(X1,X2) MSG2("HINT: " X1,X2)
+#define HINT3(X1,X2,X3) MSG3("HINT: " X1,X2,X3)
+#define HINT4(X1,X2,X3,X4) MSG4("HINT: " X1,X2,X3,X4)
+#define HINT5(X1,X2,X3,X4,X5) MSG5("HINT: " X1,X2,X3,X4,X5)
+#define HINT6(X1,X2,X3,X4,X5,X6) MSG6("HINT: " X1,X2,X3,X4,X5,X6)
+
+#define NOTE1(X1) MSG1("NOTE: " X1)
+#define NOTE2(X1,X2) MSG2("NOTE: " X1,X2)
+#define NOTE3(X1,X2,X3) MSG3("NOTE: " X1,X2,X3)
+#define NOTE4(X1,X2,X3,X4) MSG4("NOTE: " X1,X2,X3,X4)
+#define NOTE5(X1,X2,X3,X4,X5) MSG5("NOTE: " X1,X2,X3,X4,X5)
+#define NOTE6(X1,X2,X3,X4,X5,X6) MSG6("NOTE: " X1,X2,X3,X4,X5,X6)
+
+#define WARN1(X1) MSG1("WARN: " X1)
+#define WARN2(X1,X2) MSG2("WARN: " X1,X2)
+#define WARN3(X1,X2,X3) MSG3("WARN: " X1,X2,X3)
+#define WARN4(X1,X2,X3,X4) MSG4("WARN: " X1,X2,X3,X4)
+#define WARN5(X1,X2,X3,X4,X5) MSG5("WARN: " X1,X2,X3,X4,X5)
+#define WARN6(X1,X2,X3,X4,X5,X6) MSG6("WARN: " X1,X2,X3,X4,X5,X6)
+
+#define FAIL1(X1) MSG1("FAIL: " X1)
+#define FAIL2(X1,X2) MSG2("FAIL: " X1,X2)
+#define FAIL3(X1,X2,X3) MSG3("FAIL: " X1,X2,X3)
+#define FAIL4(X1,X2,X3,X4) MSG4("FAIL: " X1,X2,X3,X4)
+#define FAIL5(X1,X2,X3,X4,X5) MSG5("FAIL: " X1,X2,X3,X4,X5)
+#define FAIL6(X1,X2,X3,X4,X5,X6) MSG6("FAIL: " X1,X2,X3,X4,X5,X6)
+
+
+
+#ifdef DEBUG
+_zzip_inline static void zzip_debug_xbuf (unsigned char* p, int l)
+ /* ZZIP_GNUC_UNUSED */
+{
+# define q(a) ((a&0x7F)<32?32:(a&0x7F))
+ while (l > 0)
+ {
+ fprintf (stderr,
+ "%02x %02x %02x %02x "
+ "%02x %02x %02x %02x "
+ "%c%c%c%c %c%c%c%c\n",
+ p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7],
+ q(p[0]), q(p[1]), q(p[2]), q(p[3]),
+ q(p[4]), q(p[5]), q(p[6]), q(p[7]));
+ p += 8; l -= 8;
+ }
+# undef q
+}
+#endif
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/__dirent.h b/Build/source/libs/zziplib/zziplib-src/zzip/__dirent.h
new file mode 100644
index 00000000000..bda47557c49
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/__dirent.h
@@ -0,0 +1,388 @@
+#ifndef ZZIP_INTERNAL_DIRENT_H
+#define ZZIP_INTERNAL_DIRENT_H
+#include <zzip/conf.h>
+
+/*
+ * DO NOT USE THIS CODE.
+ *
+ * It is an internal header file for zziplib that carries some inline
+ * functions (or just static members) and a few defines, simply to be
+ * able to reuse these across - and have everything in a specific place.
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#ifdef ZZIP_HAVE_DIRENT_H
+#define USE_DIRENT 1
+
+#define _zzip_opendir opendir
+#define _zzip_readdir readdir
+#define _zzip_closedir closedir
+#define _zzip_rewinddir rewinddir
+#define _zzip_telldir telldir
+#define _zzip_seekdir seekdir
+#define _zzip_DIR DIR
+
+#include <dirent.h>
+
+#elif defined ZZIP_HAVE_WINBASE_H
+#define USE_DIRENT 2
+
+#define _zzip_opendir win32_opendir
+#define _zzip_readdir win32_readdir
+#define _zzip_closedir win32_closedir
+#define _zzip_rewinddir win32_rewinddir
+#define _zzip_telldir win32_telldir
+#define _zzip_seekdir win32_seekdir
+#define _zzip_DIR DIR
+
+/*
+ * DIRENT.H (formerly DIRLIB.H)
+ *
+ * by M. J. Weinstein Released to public domain 1-Jan-89
+ *
+ * Because I have heard that this feature (opendir, readdir, closedir)
+ * it so useful for programmers coming from UNIX or attempting to port
+ * UNIX code, and because it is reasonably light weight, I have included
+ * it in the Mingw32 package. I have also added an implementation of
+ * rewinddir, seekdir and telldir.
+ * - Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
+ *
+ * This code is distributed in the hope that is will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAMED. This includeds but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#include <io.h>
+
+struct dirent
+{
+ long d_ino; /* Always zero. */
+ unsigned short d_reclen; /* Always zero. */
+ unsigned short d_namlen; /* Length of name in d_name. */
+ char* d_name; /* File name. */
+ /* NOTE: The name in the dirent structure points to the name in the
+ * finddata_t structure in the DIR. */
+};
+
+/*
+ * This is an internal data structure. Good programmers will not use it
+ * except as an argument to one of the functions below.
+ */
+typedef struct
+{
+ /* disk transfer area for this dir */
+ struct _finddata_t dd_dta;
+
+ /* dirent struct to return from dir (NOTE: this makes this thread
+ * safe as long as only one thread uses a particular DIR struct at
+ * a time) */
+ struct dirent dd_dir;
+
+ /* _findnext handle */
+ long dd_handle;
+
+ /*
+ * Status of search:
+ * 0 = not started yet (next entry to read is first entry)
+ * -1 = off the end
+ * positive = 0 based index of next entry
+ */
+ short dd_stat;
+
+ /* given path for dir with search pattern (struct is extended) */
+ char dd_name[1];
+} DIR;
+
+/*
+ * dirent.c
+ *
+ * Derived from DIRLIB.C by Matt J. Weinstein
+ * This note appears in the DIRLIB.H
+ * DIRLIB.H by M. J. Weinstein Released to public domain 1-Jan-89
+ *
+ * Updated by Jeremy Bettis <jeremy@hksys.com>
+ * Significantly revised and rewinddir, seekdir and telldir added by Colin
+ * Peters <colin@fu.is.saga-u.ac.jp>
+ */
+
+#include <direct.h>
+#include <errno.h>
+#include <io.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#define win32_SUFFIX "*"
+#define win32_SLASH "\\"
+
+#ifndef S_ISDIR
+#define S_ISDIR(m) ((m & S_IFMT) == S_IFDIR) /* is a directory */
+#endif S_ISDIR
+
+
+/*
+ opendir
+
+ Returns a pointer to a DIR structure appropriately filled in to begin
+ searching a directory.
+*/
+static DIR*
+win32_opendir (const char *szPath)
+{
+ DIR *nd;
+ struct _stat statDir;
+
+ errno = 0;
+
+ if (!szPath) {
+ errno = EFAULT;
+ return (DIR *) 0;
+ }
+
+ if (szPath[0] == '\0') {
+ errno = ENOTDIR;
+ return (DIR *) 0;
+ }
+
+ /* Attempt to determine if the given path really is a directory. */
+ if (_stat (szPath, &statDir)) {
+ /* Error, stat should have set an error value. */
+ return (DIR *) 0;
+ }
+
+ if (!S_ISDIR (statDir.st_mode)) {
+ /* Error, stat reports not a directory. */
+ errno = ENOTDIR;
+ return (DIR *) 0;
+ }
+
+ /* Allocate enough space to store DIR structure and the complete *
+ directory path given. */
+ nd = (DIR *) calloc (1, sizeof (DIR) + strlen (szPath)
+ + strlen (win32_SLASH) + strlen (win32_SUFFIX));
+
+ if (!nd) {
+ /* Error, out of memory. */
+ errno = ENOMEM;
+ return (DIR *) 0;
+ }
+
+ /* Create the search expression. */
+ strcpy (nd->dd_name, szPath);
+
+ /* Add on a slash if the path does not end with one. */
+ if (nd->dd_name[0] != '\0' &&
+ nd->dd_name[strlen (nd->dd_name) - 1] != '/' &&
+ nd->dd_name[strlen (nd->dd_name) - 1] != '\\') {
+ strcat (nd->dd_name, win32_SLASH);
+ }
+
+ /* Add on the search pattern */
+ strcat (nd->dd_name, win32_SUFFIX);
+
+ /* Initialize handle to -1 so that a premature closedir doesn't try * to
+ call _findclose on it. */
+ nd->dd_handle = -1;
+
+ /* Initialize the status. */
+ nd->dd_stat = 0;
+
+ /* Initialize the dirent structure. ino and reclen are invalid under *
+ Win32, and name simply points at the appropriate part of the *
+ findfirst_t structure. */
+ nd->dd_dir.d_ino = 0;
+ nd->dd_dir.d_reclen = 0;
+ nd->dd_dir.d_namlen = 0;
+ nd->dd_dir.d_name = nd->dd_dta.name;
+
+ return nd;
+}
+
+/*
+ readdir
+
+ Return a pointer to a dirent structure filled with the information on the
+ next entry in the directory.
+*/
+static struct dirent *
+win32_readdir (DIR * dirp)
+{
+ errno = 0;
+
+ /* Check for valid DIR struct. */
+ if (!dirp) {
+ errno = EFAULT;
+ return (struct dirent *) 0;
+ }
+
+ if (dirp->dd_dir.d_name != dirp->dd_dta.name) {
+ /* The structure does not seem to be set up correctly. */
+ errno = EINVAL;
+ return (struct dirent *) 0;
+ }
+
+ if (dirp->dd_stat < 0) {
+ /* We have already returned all files in the directory * (or the
+ structure has an invalid dd_stat). */
+ return (struct dirent *) 0;
+ } else if (dirp->dd_stat == 0) {
+ /* We haven't started the search yet. */
+ /* Start the search */
+ dirp->dd_handle = _findfirst (dirp->dd_name, &(dirp->dd_dta));
+
+ if (dirp->dd_handle == -1) {
+ /* Whoops! Seems there are no files in that * directory. */
+ dirp->dd_stat = -1;
+ } else {
+ dirp->dd_stat = 1;
+ }
+ } else {
+ /* Get the next search entry. */
+ if (_findnext (dirp->dd_handle, &(dirp->dd_dta))) {
+ /* We are off the end or otherwise error. */
+ _findclose (dirp->dd_handle);
+ dirp->dd_handle = -1;
+ dirp->dd_stat = -1;
+ } else {
+ /* Update the status to indicate the correct * number. */
+ dirp->dd_stat++;
+ }
+ }
+
+ if (dirp->dd_stat > 0) {
+ /* Successfully got an entry. Everything about the file is * already
+ appropriately filled in except the length of the * file name. */
+ dirp->dd_dir.d_namlen = (unsigned short) strlen (dirp->dd_dir.d_name);
+ return &dirp->dd_dir;
+ }
+
+ return (struct dirent *) 0;
+}
+
+/*
+ closedir
+
+ Frees up resources allocated by opendir.
+*/
+static int
+win32_closedir (DIR * dirp)
+{
+ int rc;
+
+ errno = 0;
+ rc = 0;
+
+ if (!dirp) {
+ errno = EFAULT;
+ return -1;
+ }
+
+ if (dirp->dd_handle != -1) {
+ rc = _findclose (dirp->dd_handle);
+ }
+
+ /* Delete the dir structure. */
+ free (dirp);
+
+ return rc;
+}
+
+/*
+ rewinddir
+
+ Return to the beginning of the directory "stream". We simply call findclose
+ and then reset things like an opendir.
+*/
+static void
+win32_rewinddir (DIR * dirp)
+{
+ errno = 0;
+
+ if (!dirp) {
+ errno = EFAULT;
+ return;
+ }
+
+ if (dirp->dd_handle != -1) {
+ _findclose (dirp->dd_handle);
+ }
+
+ dirp->dd_handle = -1;
+ dirp->dd_stat = 0;
+}
+
+/*
+ telldir
+
+ Returns the "position" in the "directory stream" which can be used with
+ seekdir to go back to an old entry. We simply return the value in stat.
+*/
+static long
+win32_telldir (DIR * dirp)
+{
+ errno = 0;
+
+ if (!dirp) {
+ errno = EFAULT;
+ return -1;
+ }
+ return dirp->dd_stat;
+}
+
+/*
+ seekdir
+
+ Seek to an entry previously returned by telldir. We rewind the directory
+ and call readdir repeatedly until either dd_stat is the position number
+ or -1 (off the end). This is not perfect, in that the directory may
+ have changed while we weren't looking. But that is probably the case with
+ any such system.
+*/
+static void
+win32_seekdir (DIR * dirp, long lPos)
+{
+ errno = 0;
+
+ if (!dirp) {
+ errno = EFAULT;
+ return;
+ }
+
+ if (lPos < -1) {
+ /* Seeking to an invalid position. */
+ errno = EINVAL;
+ return;
+ } else if (lPos == -1) {
+ /* Seek past end. */
+ if (dirp->dd_handle != -1) {
+ _findclose (dirp->dd_handle);
+ }
+ dirp->dd_handle = -1;
+ dirp->dd_stat = -1;
+ } else {
+ /* Rewind and read forward to the appropriate index. */
+ win32_rewinddir (dirp);
+
+ while ((dirp->dd_stat < lPos) && win32_readdir (dirp));
+ }
+}
+
+#else
+#define USE_DIRENT 0
+
+#define _zzip_opendir(_N_) 0
+#define _zzip_readdir(_D_) 0
+#define _zzip_closedir(_D_) /* omit return code */
+#define _zzip_rewinddir(_D_)
+#define _zzip_telldir(_D_) 0
+#define _zzip_seekdir(_D_,_V_) /* omit return code */
+#define _zzip_DIR void*
+
+/* end of DIRENT implementation */
+#endif
+
+/* once */
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/__errno.h b/Build/source/libs/zziplib/zziplib-src/zzip/__errno.h
new file mode 100644
index 00000000000..d66ac3f7154
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/__errno.h
@@ -0,0 +1,11 @@
+#ifndef __ZZIP_INTERNAL_ERRNO_H
+#define __ZZIP_INTERNAL_ERRNO_H
+
+#include <errno.h>
+
+/* Mingw cross compile fix */
+#ifndef EBADMSG
+#define EBADMSG 74
+#endif
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/__fnmatch.h b/Build/source/libs/zziplib/zziplib-src/zzip/__fnmatch.h
new file mode 100644
index 00000000000..6e9443c0fea
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/__fnmatch.h
@@ -0,0 +1,49 @@
+#ifndef __ZZIP_INTERNAL_FNMATCH_H
+#define __ZZIP_INTERNAL_FNMATCH_H
+/** included by fseeko.c, mmapped.c, memdisk.c */
+
+#include <zzip/conf.h>
+#include <stdio.h>
+#include <string.h>
+
+#ifdef ZZIP_HAVE_FNMATCH_H
+# include <fnmatch.h>
+# define _zzip_fnmatch fnmatch
+# ifdef FNM_CASEFOLD
+# define _zzip_FNM_CASEFOLD FNM_CASEFOLD
+# else
+# define _zzip_FNM_CASEFOLD 0
+# endif
+# ifdef FNM_NOESCAPE
+# define _zzip_FNM_NOESCAPE FNM_NOESCAPE
+# else
+# define _zzip_FNM_NOESCAPE 0
+# endif
+# ifdef FNM_PATHNAME
+# define _zzip_FNM_PATHNAME FNM_PATHNAME
+# else
+# define _zzip_FNM_PATHNAME 0
+# endif
+# ifdef FNM_PERIOD
+# define _zzip_FNM_PERIOD FNM_PERIOD
+# else
+# define _zzip_FNM_PERIOD 0
+# endif
+
+#else
+/* if your system does not have fnmatch, we fall back to strcmp: */
+static int _zzip_fnmatch(char* pattern, char* string, int flags)
+{
+# ifdef DBG2
+ DBG1("<zzip:mmapped:strcmp>");
+# endif
+ return strcmp (pattern, string);
+}
+
+# define _zzip_FNM_CASEFOLD 0
+# define _zzip_FNM_NOESCAPE 0
+# define _zzip_FNM_PATHNAME 0
+# define _zzip_FNM_PERIOD 0
+#endif
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/__hints.h b/Build/source/libs/zziplib/zziplib-src/zzip/__hints.h
new file mode 100644
index 00000000000..1d2eef0b455
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/__hints.h
@@ -0,0 +1,195 @@
+#ifndef __ZZIP_INTERNAL_HINTS_H
+#define __ZZIP_INTERNAL_HINTS_H
+#include <zzip/conf.h>
+
+#ifndef ZZIP_GNUC_ATLEAST
+# if defined __GNUC__ && defined __GNUC_MINOR__
+# define ZZIP_GNUC_ATLEAST(_M_,_N_) \
+ ((__GNUC__ << 10) + __GNUC_MINOR__ >= ((_M_) << 10) + (_N_))
+# elif defined __GNUC__
+# define ZZIP_GNUC_ATLEAST(_M_,_N_) \
+ ((__GNUC__ << 10) >= ((_M_) << 10))
+# else
+# define ZZIP_GNUC_ATLEAST(_M_, _N_) 0
+# endif
+#endif
+
+#ifndef ZZIP_GNUC_EXTENSION
+# if ZZIP_GNUC_ATLEAST(2,8)
+# define ZZIP_GNUC_EXTENSION __extension__
+# else
+# define ZZIP_GNUC_EXTENSION
+# endif
+#endif
+
+/* func has no side effects, return value depends only on params and globals */
+#ifndef ZZIP_GNUC_PURE
+# if ZZIP_GNUC_ATLEAST(2,8)
+# define ZZIP_GNUC_PURE __attribute__((__pure__))
+# else
+# define ZZIP_GNUC_PURE
+# endif
+#endif
+
+/* func has no side effects, return value depends only on params */
+#ifndef ZZIP_GNUC_CONST
+# if ZZIP_GNUC_ATLEAST(2,4)
+# define ZZIP_GNUC_CONST __attribute__((__const__))
+# else
+# define ZZIP_GNUC_CONST
+# endif
+#endif
+
+/* typename / variable / function possibly unused */
+#ifndef ZZIP_GNUC_UNUSED
+# if ZZIP_GNUC_ATLEAST(2,4)
+# define ZZIP_GNUC_UNUSED __attribute__((__unused__))
+# else
+# define ZZIP_GNUC_UNUSED
+# endif
+#endif
+
+/* obvious. btw, a noreturn-func should return void */
+#ifndef ZZIP_GNUC_NORETURN
+# if ZZIP_GNUC_ATLEAST(2,5)
+# define ZZIP_GNUC_NORETURN __attribute__((__noreturn__))
+# else
+# define ZZIP_GNUC_NORETURN
+# endif
+#endif
+
+/* omit function from profiling with -finstrument-functions */
+#ifndef ZZIP_GNUC_NO_INSTRUMENT
+# if ZZIP_GNUC_ATLEAST(2,4)
+# define ZZIP_GNUC_NO_INSTRUMENT __attribute__((__no_instrument_function__))
+# else
+# define ZZIP_GNUC_NO_INSTRUMENT
+# endif
+#endif
+
+/* all pointer args must not be null, and allow optimiztons based on the fact*/
+#ifndef ZZIP_GNUC_NONNULL
+# if ZZIP_GNUC_ATLEAST(3,1)
+# define ZZIP_GNUC_NONNULL __attribute__((nonnull))
+# else
+# define ZZIP_GNUC_NONNULL
+# endif
+#endif
+
+/* the function can not throw - the libc function are usually nothrow */
+#ifndef ZZIP_GNUC_NOTHROW
+# if ZZIP_GNUC_ATLEAST(3,2)
+# define ZZIP_GNUC_NOTHROW __attribute__((nothrow))
+# else
+# define ZZIP_GNUC_NOTHROW
+# endif
+#endif
+
+/* typename / function / variable is obsolete but still listed in headers */
+#ifndef ZZIP_GNUC_DEPRECATED
+# if ZZIP_GNUC_ATLEAST(3,1)
+# define ZZIP_GNUC_DEPRECATED __attribute__((deprecated))
+# else
+# define ZZIP_GNUC_DEPRECATED
+# endif
+#endif
+
+/* resolve references to this function during pre-linking the library */
+#ifndef ZZIP_GNUC_LIB_PROTECTED
+# if ZZIP_GNUC_ATLEAST(3,1)
+# define ZZIP_GNUC_LIB_PROTECTED __attribute__((visiblity("protected")))
+# else
+# define ZZIP_GNUC_LIB_PROTECTED
+# endif
+#endif
+
+/* func shall only be usable within the same lib (so, no entry in lib symtab)*/
+#ifndef ZZIP_GNUC_LIB_PRIVATE
+# if ZZIP_GNUC_ATLEAST(3,1)
+# define ZZIP_GNUC_LIB_PRIVATE __attribute__((visiblity("hidden")))
+# else
+# define ZZIP_GNUC_LIB_PRIVATE
+# endif
+#endif
+
+/* ... and not even passed as a function pointer reference to outside the lib*/
+#ifndef ZZIP_GNUC_LIB_INTERNAL
+# if ZZIP_GNUC_ATLEAST(3,1)
+# define ZZIP_GNUC_LIB_INTERNAL __attribute__((visiblity("internal")))
+# else
+# define ZZIP_GNUC_LIB_INTERNAL
+# endif
+#endif
+
+
+#ifndef ZZIP_GNUC_FORMAT
+# if ZZIP_GNUC_ATLEAST(2,4)
+# define ZZIP_GNUC_FORMAT(_X_) __attribute__((__format_arg__(_X_)))
+# else
+# define ZZIP_GNUC_FORMAT(_X_)
+# endif
+#endif
+
+#ifndef ZZIP_GNUC_SCANF
+# if ZZIP_GNUC_ATLEAST(2,4)
+# define ZZIP_GNUC_SCANF(_S_,_X_) __attribute__((__scanf__(_S_,_X_)))
+# else
+# define ZZIP_GNUC_SCANF(_S_,_X_)
+# endif
+#endif
+
+#ifndef ZZIP_GNUC_PRINTF
+# if ZZIP_GNUC_ATLEAST(2,4)
+# define ZZIP_GNUC_PRINTF(_S_,_X_) __attribute__((__printf__(_S_,_X_)))
+# else
+# define ZZIP_GNUC_PRINTF(_S_,_X_)
+# endif
+#endif
+
+#ifdef __GNUC__
+#define ZZIP_GNUC_PACKED __attribute__((packed))
+#else
+#define ZZIP_GNUC_PACKED
+#endif
+
+#ifndef ZZIP_FUNCTION
+# if ZZIP_GNUC_ATLEAST(2,6)
+# define ZZIP_FUNC __FUNCTION__
+# define ZZIP_FUNCTION __FUNCTION__
+# elif defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
+# define ZZIP_FUNC __func__
+# define ZZIP_FUNCTION ""
+# else
+# define ZZIP_FUNC 0
+# define ZZIP_FUNCTION ""
+# endif
+#endif
+
+#ifndef ZZIP_STRING
+#define ZZIP_STRING(_X_) ZZIP_STRING_(_X_)
+#define ZZIP_STRING_(_Y_) #_Y_
+#endif
+
+#ifndef ZZIP_DIM
+#define ZZIP_DIM(_A_) (sizeof(_A_) / sizeof ((_A_)[0]))
+#endif
+
+#if !(defined ZZIP_FOR1 && defined ZZIP_END1)
+# if defined sun || defined __sun__
+# define ZZIP_FOR1 if (1)
+# define ZZIP_END1 else (void)0
+# else
+# define ZZIP_FOR1 do
+# define ZZIP_END1 while (0)
+# endif
+#endif
+
+#ifndef ZZIP_BRANCH_OVER
+# if ZZIP_GNUC_ATLEAST(2,96)
+# define ZZIP_BRANCH_OVER(_X_) __builtin_expect((_X_),0)
+# else
+# define ZZIP_BRANCH_OVER(_X_) (_X_)
+# endif
+#endif
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/__mkdir.h b/Build/source/libs/zziplib/zziplib-src/zzip/__mkdir.h
new file mode 100644
index 00000000000..c1bffa44454
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/__mkdir.h
@@ -0,0 +1,12 @@
+#ifndef __ZZIP_INTERNAL_MKDIR_H
+#define __ZZIP_INTERNAL_MKDIR_H
+
+#include <zzip/conf.h>
+
+# ifdef ZZIP_HAVE_DIRECT_H
+# define _zzip_mkdir(a,b) mkdir(a)
+# else
+# define _zzip_mkdir mkdir
+# endif
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/__mmap.h b/Build/source/libs/zziplib/zziplib-src/zzip/__mmap.h
new file mode 100644
index 00000000000..80c976d242c
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/__mmap.h
@@ -0,0 +1,100 @@
+#ifndef __ZZIP_INTERNAL_MMAP_H
+#define __ZZIP_INTERNAL_MMAP_H
+#include <zzip/types.h>
+
+/*
+ * DO NOT USE THIS CODE.
+ *
+ * It is an internal header file for zziplib that carries some inline
+ * functions (or just static members) and a few defines, simply to be
+ * able to reuse these across - and have everything in a specific place.
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#ifdef _USE_MMAP
+#if defined ZZIP_HAVE_SYS_MMAN_H
+#include <sys/mman.h>
+#define USE_POSIX_MMAP 1
+#elif defined ZZIP_HAVE_WINBASE_H || defined WIN32
+#include <windows.h>
+#define USE_WIN32_MMAP 1
+#else
+#undef _USE_MMAP
+#endif
+#endif
+
+/* -------------- specify MMAP function imports --------------------------- */
+
+#if defined USE_POSIX_MMAP
+#define USE_MMAP 1
+
+#define _zzip_mmap(user, fd, offs, len) \
+ mmap (0, len, PROT_READ, MAP_SHARED, fd, offs)
+#define _zzip_munmap(user, ptr, len) \
+ munmap (ptr, len)
+#define _zzip_getpagesize(user) getpagesize()
+
+#ifndef MAP_FAILED /* hpux10.20 does not have it */
+#define MAP_FAILED ((void*)(-1))
+#endif
+
+#elif defined USE_WIN32_MMAP
+#define USE_MMAP 1
+#ifndef MAP_FAILED
+#define MAP_FAILED 0
+#endif
+/* we had used the plugin->sys variable for (user) but not anymore */
+
+static size_t win32_getpagesize (void)
+{
+ SYSTEM_INFO si; GetSystemInfo (&si);
+ return si.dwAllocationGranularity;
+}
+static void* win32_mmap (long* user, int fd, zzip_off_t offs, size_t len)
+{
+ if (! user || *user != 1) /* || offs % getpagesize() */
+ return 0;
+ {
+ HANDLE hFile = (HANDLE)_get_osfhandle(fd);
+ HANDLE fileMapping = NULL;
+ if (hFile)
+ fileMapping = CreateFileMapping (hFile, 0, PAGE_READONLY, 0, 0, NULL);
+ if (fileMapping != NULL)
+ {
+ char* p = MapViewOfFile(fileMapping, FILE_MAP_READ, 0, offs, len);
+ CloseHandle (fileMapping); *user = 1;
+ if (p) return p;
+ }
+ return MAP_FAILED;
+ }
+}
+static void win32_munmap (long* user, char* fd_map, size_t len)
+{
+ UnmapViewOfFile (fd_map);
+}
+
+#define _zzip_mmap(user, fd, offs, len) \
+ win32_mmap ((long*) &(user), fd, offs, len)
+#define _zzip_munmap(user, ptr, len) \
+ win32_munmap ((long*) &(user), ptr, len)
+#define _zzip_getpagesize(user) win32_getpagesize()
+
+#else /* disable */
+#define USE_MMAP 0
+/* USE_MAP is intentional: we expect the compiler to do some "code removal"
+ * on any source code enclosed in if (USE_MMAP) {...} i.e. the unreachable
+ * branch of an if (0) {....} is not emitted to the final object binary. */
+
+#ifndef MAP_FAILED
+#define MAP_FAILED 0
+#endif
+
+#define _zzip_mmap(user, fd, offs, len) (MAP_FAILED)
+#define _zzip_munmap(user, ptr, len) {}
+#define _zzip_getpagesize(user) 1
+
+#endif /* USE_MMAP defines */
+
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/__string.h b/Build/source/libs/zziplib/zziplib-src/zzip/__string.h
new file mode 100644
index 00000000000..e62fb06564c
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/__string.h
@@ -0,0 +1,82 @@
+#ifndef __ZZIP_INTERNAL_STRING_H
+#define __ZZIP_INTERNAL_STRING_H
+
+#ifdef __linux__
+#define _GNU_SOURCE _glibc_developers_are_idiots_to_call_strndup_gnu_specific_
+#endif
+
+#include <zzip/conf.h>
+
+#if defined ZZIP_HAVE_STRING_H
+#include <string.h>
+#elif defined ZZIP_HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#if defined ZZIP_HAVE_STRNLEN || defined strnlen
+#define _zzip_strnlen strnlen
+#else
+#include <stdlib.h>
+
+/* if your system does not have strnlen: */
+static size_t
+_zzip_strnlen(const char *p, size_t maxlen)
+{
+ const char * stop = (char *)memchr(p, '\0', maxlen);
+ return stop ? (size_t)(stop - p) : maxlen;
+}
+#endif
+
+
+#if defined ZZIP_HAVE_STRNDUP || defined strndup
+#define _zzip_strndup strndup
+#else
+#include <stdlib.h>
+
+/* if your system does not have strndup: */
+zzip__new__ static char *
+_zzip_strndup(char const *p, size_t maxlen)
+{
+ if (p == NULL)
+ {
+ return p;
+ } else
+ {
+ size_t len = _zzip_strnlen(p, maxlen);
+ char* r = (char *)malloc(len + 1);
+ if (r == NULL)
+ return NULL; /* errno = ENOMEM */
+ r[len] = '\0';
+ return memcpy(r, p, len);
+ }
+}
+#endif
+
+#if defined ZZIP_HAVE_STRCASECMP || defined strcasecmp
+#define _zzip_strcasecmp strcasecmp
+#else
+
+/* if your system does not have strcasecmp: */
+static int
+_zzip_strcasecmp(char *__zzip_restrict a, char *_zzip_restrict b)
+{
+ if (! a)
+ return (b) ? 1 : 0;
+ if (! b)
+ return -1;
+ while (1)
+ {
+ int v = tolower(*a) - tolower(*b);
+ if (v)
+ return v;
+ if (! *a)
+ return 1;
+ if (! *b)
+ return -1;
+ a++;
+ b++;
+ }
+}
+#endif
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/_config.h.cmake b/Build/source/libs/zziplib/zziplib-src/zzip/_config.h.cmake
new file mode 100644
index 00000000000..b48b39ac98b
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/_config.h.cmake
@@ -0,0 +1,165 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if pointers to integers require aligned access */
+#cmakedefine ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED ${ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED}
+
+/* Define to 1 if you have the <byteswap.h> header file. */
+#cmakedefine ZZIP_HAVE_BYTESWAP_H ${ZZIP_HAVE_BYTESWAP_H}
+
+/* Define to 1 if you have the <direct.h> header file. */
+#cmakedefine ZZIP_HAVE_DIRECT_H ${ZZIP_HAVE_DIRECT_H}
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.*/
+#cmakedefine ZZIP_HAVE_DIRENT_H ${ZZIP_HAVE_DIRENT_H}
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#cmakedefine ZZIP_HAVE_DLFCN_H ${ZZIP_HAVE_DLFCN_H}
+
+/* Define to 1 if you have the <fnmatch.h> header file. */
+#cmakedefine ZZIP_HAVE_FNMATCH_H ${ZZIP_HAVE_FNMATCH_H}
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#cmakedefine ZZIP_HAVE_INTTYPES_H ${ZZIP_HAVE_INTTYPES_H}
+
+/* Define to 1 if you have the <io.h> header file. */
+#cmakedefine ZZIP_HAVE_IO_H ${ZZIP_HAVE_IO_H}
+
+/* Define to 1 if you have the <memory.h> header file. */
+#cmakedefine ZZIP_HAVE_MEMORY_H ${ZZIP_HAVE_MEMORY_H}
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#cmakedefine ZZIP_HAVE_NDIR_H ${ZZIP_HAVE_NDIR_H}
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#cmakedefine ZZIP_HAVE_STDINT_H ${ZZIP_HAVE_STDINT_H}
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#cmakedefine ZZIP_HAVE_STDLIB_H ${ZZIP_HAVE_STDLIB_H}
+
+/* Define to 1 if you have the `strcasecmp' function. */
+#cmakedefine ZZIP_HAVE_STRCASECMP ${ZZIP_HAVE_STRCASECMP}
+
+/* Define to 1 if you have the <strings.h> header file. */
+#cmakedefine ZZIP_HAVE_STRINGS_H ${ZZIP_HAVE_STRINGS_H}
+
+/* Define to 1 if you have the <string.h> header file. */
+#cmakedefine ZZIP_HAVE_STRING_H ${ZZIP_HAVE_STRING_H}
+
+/* Define to 1 if you have the `strndup' function. */
+#cmakedefine ZZIP_HAVE_STRNDUP ${ZZIP_HAVE_STRNDUP}
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.*/
+#cmakedefine ZZIP_HAVE_SYS_DIR_H ${ZZIP_HAVE_SYS_DIR_H}
+
+/* Define to 1 if you have the <sys/int_types.h> header file. */
+#cmakedefine ZZIP_HAVE_SYS_INT_TYPES_H ${ZZIP_HAVE_SYS_INT_TYPES_H}
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#cmakedefine ZZIP_HAVE_SYS_MMAN_H ${ZZIP_HAVE_SYS_MMAN_H}
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.*/
+#cmakedefine ZZIP_HAVE_SYS_NDIR_H ${ZZIP_HAVE_SYS_NDIR_H}
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#cmakedefine ZZIP_HAVE_SYS_PARAM_H ${ZZIP_HAVE_SYS_PARAM_H}
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#cmakedefine ZZIP_HAVE_SYS_STAT_H ${ZZIP_HAVE_SYS_STAT_H}
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#cmakedefine ZZIP_HAVE_SYS_TYPES_H ${ZZIP_HAVE_SYS_TYPES_H}
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#cmakedefine ZZIP_HAVE_UNISTD_H ${ZZIP_HAVE_UNISTD_H}
+
+/* Define to 1 if you have the <winbase.h> header file. */
+#cmakedefine ZZIP_HAVE_WINBASE_H ${ZZIP_HAVE_WINBASE_H}
+
+/* Define to 1 if you have the <windows.h> header file. */
+#cmakedefine ZZIP_HAVE_WINDOWS_H ${ZZIP_HAVE_WINDOWS_H}
+
+/* Define to 1 if you have the <winnt.h> header file. */
+#cmakedefine ZZIP_HAVE_WINNT_H ${ZZIP_HAVE_WINNT_H}
+
+/* Define to 1 if you have the <zlib.h> header file. */
+#cmakedefine ZZIP_HAVE_ZLIB_H ${ZZIP_HAVE_ZLIB_H}
+
+/* whether the system defaults to 32bit off_t but can do 64bit when requested */
+#cmakedefine ZZIP_LARGEFILE_SENSITIVE ${ZZIP_LARGEFILE_SENSITIVE}
+
+/* Name of package */
+#cmakedefine ZZIP_PACKAGE "${ZZIP_PACKAGE}"
+
+/* Define to the address where bug reports for this package should be sent. */
+#cmakedefine ZZIP_PACKAGE_BUGREPORT "${ZZIP_PACKAGE_BUGREPORT}"
+
+/* Define to the full name of this package. */
+#cmakedefine ZZIP_PACKAGE_NAME "${ZZIP_PACKAGE_NAME}"
+
+/* Define to the full name and version of this package. */
+#cmakedefine ZZIP_PACKAGE_STRING "${ZZIP_PACKAGE_STRING}"
+
+/* Define to the one symbol short name of this package. */
+#cmakedefine ZZIP_PACKAGE_TARNAME "${ZZIP_PACKAGE_TARNAME}"
+
+/* Define to the version of this package. */
+#cmakedefine ZZIP_PACKAGE_VERSION "${ZZIP_PACKAGE_VERSION}"
+
+/* The number of bytes in type int */
+#cmakedefine ZZIP_SIZEOF_INT ${ZZIP_SIZEOF_INT}
+
+/* The number of bytes in type long */
+#cmakedefine ZZIP_SIZEOF_LONG ${ZZIP_SIZEOF_LONG}
+
+/* The number of bytes in type short */
+#cmakedefine ZZIP_SIZEOF_SHORT ${ZZIP_SIZEOF_SHORT}
+
+/* Define to 1 if you have the ANSI C header files. */
+#cmakedefine ZZIP_STDC_HEADERS ${ZZIP_STDC_HEADERS}
+
+/* Version number of package */
+#cmakedefine ZZIP_VERSION ${ZZIP_VERSION}
+
+/* Define to 1 if your processor stores words with the most significant byte
+ first (like Motorola and SPARC, unlike Intel and VAX). */
+#cmakedefine ZZIP_WORDS_BIGENDIAN ${ZZIP_WORDS_BIGENDIAN}
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#cmakedefine _FILE_OFFSET_BITS ${_FILE_OFFSET_BITS}
+
+/* Define for large files, on AIX-style hosts. */
+#cmakedefine _LARGE_FILES ${_LARGE_FILES}
+
+/* Define to `long long' if <sys/types.h> does not define. */
+#cmakedefine __int64 ${__INT64}
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#cmakedefine const ${const}
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef __cplusplus
+#ifndef _zzip_inline
+#define _zzip_inline __inline
+#endif
+#endif
+
+
+/* Define to `_zzip_off_t' if <sys/types.h> does not define. */
+#define _zzip_off64_t _zzip_off_t
+
+/* Define to `long int' if <sys/types.h> does not define. */
+#cmakedefine _zzip_off_t ${OFF_T}
+
+/* Define to equivalent of C99 restrict keyword, or to nothing if this is not
+ supported. Do not define if restrict is supported directly. */
+#ifndef _zzip_restrict
+#define _zzip_restrict
+#endif
+
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#cmakedefine _zzip_size_t ${SIZE_T}
+
+/* Define to `int' if <sys/types.h> does not define. */
+#cmakedefine _zzip_ssize_t ${SSIZE_T}
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/_msvc.sed b/Build/source/libs/zziplib/zziplib-src/zzip/_msvc.sed
new file mode 100644
index 00000000000..ec1fcbba192
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/_msvc.sed
@@ -0,0 +1,26 @@
+s:undef *HAVE_MEMORY_H *$:define HAVE_MEMORY_H 1:
+s:undef *HAVE_STDLIB_H *$:define HAVE_STDLIB_H 1:
+s:undef *HAVE_STRING_H *$:define HAVE_STRING_H 1:
+s:undef *HAVE_SYS_STAT_H *$:define HAVE_SYS_STAT_H 1:
+s:undef *HAVE_SYS_TYPES_H *$:define HAVE_SYS_TYPES_H 1:
+s:undef *HAVE_DIRECT_H *$:define HAVE_DIRECT_H 1:
+s:undef *HAVE_IO_H *$:define HAVE_IO_H 1:
+s:undef *HAVE_WINDOWS_H *$:define HAVE_WINDOWS_H 1 /* yes, this is windows */:
+s:undef *HAVE_WINBASE_H *$:define HAVE_WINBASE_H 1 /* hmm, is that win32 ? */:
+s:undef *HAVE_WINNT_H *$:define HAVE_WINNT_H 1 /* is that always true? */:
+s:undef *HAVE_ZLIB_H *$:define HAVE_ZLIB_H 1 /* you do have it, right? */:
+s:undef *PACKAGE *$:define PACKAGE "zziplib-msvc" /* yes, make it known */:
+s:undef *SIZEOF_INT *$:define SIZEOF_INT 4:
+s:undef *SIZEOF_LONG *$:define SIZEOF_LONG 4:
+s:undef *SIZEOF_SHORT *$:define SIZEOF_SHORT 2:
+s:undef *STDC_HEADERS *$:define STDC_HEADERS 1:
+s:undef *inline *$:define inline __inline:
+s:undef *off_t *$:define off_t long:
+s:undef *off64_t *$:define off64_t __int64:
+s:undef *ssize_t *$:define ssize_t int:
+s:undef restrict *$:define restrict:
+s:undef VERSION:define VERSION "0.13.x":
+s:^ *# *undef.*$:/* & */:
+/Generated automatically .* by autoheader/a\
+/* config values have been automatically set by zzip/_msvc.sed */
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/autoconf.h b/Build/source/libs/zziplib/zziplib-src/zzip/autoconf.h
new file mode 100644
index 00000000000..f0d6841454a
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/autoconf.h
@@ -0,0 +1,45 @@
+#ifndef _ZZIP_AUTOCONF_H_
+#define _ZZIP_AUTOCONF_H_ 1
+
+/*
+ * This file is trying to override configure time checks of zzip with
+ * definitions at compile time. This is not used by zzip sources themselves
+ * but it may be really helpful with thirdparty software that happens to
+ * include zzip headers from a central place but running on a different host.
+ */
+
+#include "conf.h" /* <zzip/conf.h> : <zzip/_config.h> */
+
+#if defined HAVE_ENDIAN_H || defined ZZIP_HAVE_ENDIAN_H
+#include <endian.h> /* glibc */
+#elif defined HAVE_SYS_PARAM_H || defined ZZIP_HAVE_SYS_PARAM_H
+#include <sys/param.h> /* solaris */
+#endif
+
+#if defined __BYTE_ORDER
+#define ZZIP_BYTE_ORDER __BYTE_ORDER
+#elif defined BYTE_ORDER
+#define ZZIP_BYTE_ORDER BYTE_ORDER
+#elif defined _LITTLE_ENDIAN
+#define ZZIP_BYTE_ORDER 1234
+#elif defined _BIG_ENDIAN
+#define ZZIP_BYTE_ORDER 4321
+#elif defined __i386__
+#define ZZIP_BYTE_ORDER 1234
+#elif defined WORDS_BIGENDIAN || defined ZZIP_WORDS_BIGENDIAN
+#define ZZIP_BYTE_ORDER 4321
+#else
+#define ZZIP_BYTE_ORDER 1234
+#endif
+
+/* override ZZIP_WORDS_BIGENDIAN : macros ZZIP_GET16 / ZZIP_GET32 */
+#ifdef ZZIP_BYTE_ORDER+0 == 1234
+#undef ZZIP_WORDS_BIGENDIAN
+#endif
+#ifdef ZZIP_BYTE_ORDER+0 == 4321
+#ifndef ZZIP_WORDS_BIGENDIAN
+#define ZZIP_WORDS_BIGENDIAN 1
+#endif
+#endif
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/conf.h b/Build/source/libs/zziplib/zziplib-src/zzip/conf.h
new file mode 100644
index 00000000000..34fc6a85f4b
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/conf.h
@@ -0,0 +1,259 @@
+/*
+ * Here we postprocess autoconf generated prefix-config.h entries.
+ * This is generally for things like "off_t" which is left undefined
+ * in plain config.h if the host system does already have it but we do
+ * need the prefix variant - so we add here a #define _zzip_off_t off_t
+ *
+ * This file is supposed to only carry '#define's.
+ * See <zzip/types.h> for definitions that might be seen by the compiler.
+ *
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright: (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#ifndef _ZZIP_CONF_H
+#define _ZZIP_CONF_H 1
+
+#if !defined ZZIP_OMIT_CONFIG_H
+# if defined _MSC_VER || defined __BORLANDC__ || defined __WATCOMC__
+# include <zzip/_msvc.h>
+# elif defined ZZIP_1_H
+# include "zzip-1.h"
+# elif defined ZZIP_2_H
+# include "zzip-2.h"
+# elif defined ZZIP_3_H
+# include "zzip-3.h"
+# elif defined ZZIP_4_H
+# include "zzip-4.h"
+# elif defined ZZIP_5_H
+# include "zzip-5.h"
+# else /* autoconf generated */
+# include <zzip/_config.h>
+# endif
+#endif
+
+/* especially win32 platforms do not declare off_t so far - see zzip-msvc.h */
+#ifndef _zzip_off_t
+#ifdef ZZIP_off_t
+#define _zzip_off_t ZZIP_off_t
+#else
+#define _zzip_off_t off_t
+#endif
+#endif
+
+#ifndef _zzip_off64_t
+#ifdef ZZIP_off64_t
+#define _zzip_off64_t ZZIP_off64_t
+#else
+#define _zzip_off64_t off64_t
+#endif
+#endif
+
+/* currently unused, all current zziplib-users do have ansi-C94 compilers. */
+#ifndef _zzip_const
+#ifdef ZZIP_const
+#define _zzip_const ZZIP_const
+#else
+#define _zzip_const const
+#endif
+#endif
+#ifndef _zzip_inline
+#ifdef ZZIP_inline
+#define _zzip_inline ZZIP_inline
+#else
+#define _zzip_inline inline
+#endif
+#endif
+#ifndef _zzip_restrict
+#ifdef ZZIP_restrict
+#define _zzip_restrict ZZIP_restrict
+#else
+#define _zzip_restrict restrict
+#endif
+#endif
+#if defined __linux__ && __GNUC__+0 >= 4
+#define zzip__new__ __attribute__((malloc))
+#elif defined __linux__ && __GNUC__+0 >= 3 && __GNUC_MINOR_+0 >= 3
+#define zzip__new__ __attribute__((malloc))
+#else
+#define zzip__new__
+#endif
+
+#ifndef _zzip_size_t
+#ifdef ZZIP_size_t
+#define _zzip_size_t ZZIP_size_t
+#else
+#define _zzip_size_t size_t
+#endif
+#endif
+#ifndef _zzip_ssize_t
+#ifdef ZZIP_ssize_t
+#define _zzip_ssize_t ZZIP_ssize_t
+#else
+#define _zzip_ssize_t ssize_t
+#endif
+#endif
+#ifndef _zzip___int64
+#ifdef ZZIP___int64
+#define _zzip___int64 ZZIP___int64
+#else
+#define _zzip___int64 long long
+#endif
+#endif
+
+/* whether this library shall use a 64bit off_t largefile variant in 64on32: */
+/* (some exported names must be renamed to avoid bad calls after linking) */
+#if defined ZZIP_LARGEFILE_SENSITIVE
+# if _FILE_OFFSET_BITS+0 == 64
+# define ZZIP_LARGEFILE_RENAME
+# elif defined _LARGE_FILES /* used on older AIX to get at 64bit off_t */
+# define ZZIP_LARGEFILE_RENAME
+# elif defined _ZZIP_LARGEFILE /* or simply use this one for zzip64 runs */
+# define ZZIP_LARGEFILE_RENAME
+# endif
+#endif
+
+/* if the environment did not setup these for 64bit off_t largefile... */
+#ifdef ZZIP_LARGEFILE_RENAME
+# ifndef _FILE_OFFSET_BITS
+# ifdef ZZIP__FILE_OFFSET_BITS /* == 64 */
+# define _FILE_OFFSET_BITS ZZIP__FILE_OFFSET_BITS
+# endif
+# endif
+# ifndef _LARGE_FILES
+# ifdef ZZIP__LARGE_FILES /* == 1 */
+# define _LARGE_FILES ZZIP__LARGE_FILES
+# endif
+# endif
+# ifndef _LARGEFILE_SOURCE
+# ifdef ZZIP__LARGEFILE_SOURCE /* == 1 */
+# define _LARGEFILE_SOURCE ZZIP__LARGEFILE_SOURCE
+# endif
+# endif
+#endif
+
+#include <errno.h>
+
+/* mingw32msvc errno : would be in winsock.h */
+#ifndef EREMOTE
+#define EREMOTE ESPIPE
+#endif
+
+#ifndef ELOOP
+#if defined EILSEQ
+#define ELOOP EILSEQ
+#else
+#define ELOOP ENOEXEC
+#endif
+#endif
+
+#if defined __WATCOMC__
+#undef _zzip_inline
+#define _zzip_inline static
+#endif
+
+#if defined _MSC_VER || defined __WATCOMC__
+#include <io.h>
+#endif
+
+#ifdef _MSC_VER
+# if !__STDC__
+# ifndef _zzip_lseek
+# define _zzip_lseek _lseek
+# endif
+# ifndef _zzip_read
+# define _zzip_read _read
+# endif
+# ifndef _zzip_write
+# define _zzip_write _write
+# endif
+# if 0
+# ifndef _zzip_stat
+# define _zzip_stat _stat
+# endif
+# endif
+# endif /* !__STDC__ */
+#endif
+ /*MSVC*/
+
+#if defined _MSC_VER || defined __WATCOMC__
+# ifndef strcasecmp
+# define strcasecmp _stricmp
+# endif
+#endif
+
+# ifndef _zzip_lseek
+# define _zzip_lseek lseek
+# endif
+
+# ifndef _zzip_read
+# define _zzip_read read
+# endif
+
+# ifndef _zzip_write
+# define _zzip_write write
+# endif
+
+# if 0
+# ifndef _zzip_stat
+# define _zzip_stat stat
+# endif
+# endif
+
+
+#if defined ZZIP_EXPORTS || defined ZZIPLIB_EXPORTS
+# undef ZZIP_DLL
+#define ZZIP_DLL 1
+#endif
+
+/* based on zconf.h : */
+/* compile with -DZZIP_DLL for Windows DLL support */
+#if defined ZZIP_DLL
+# if defined _WINDOWS || defined WINDOWS || defined _WIN32
+/*# include <windows.h>*/
+# endif
+# if !defined _zzip_export && defined _MSC_VER && (defined WIN32 || defined _WIN32)
+# define _zzip_export __declspec(dllexport) /*WINAPI*/
+# endif
+# if !defined _zzip_export && defined __BORLANDC__
+# if __BORLANDC__ >= 0x0500 && defined WIN32
+# include <windows.h>
+# define _zzip_export __declspec(dllexport) /*WINAPI*/
+# else
+# if defined _Windows && defined __DLL__
+# define _zzip_export _export
+# endif
+# endif
+# endif
+# if !defined _zzip_export && defined __GNUC__
+# if defined __declspec
+# define _zzip_export extern __declspec(dllexport)
+# else
+# define _zzip_export extern
+# endif
+# endif
+# if !defined _zzip_export && defined __BEOS__
+# define _zzip_export extern __declspec(export)
+# endif
+# if !defined _zzip_export && defined __WATCOMC__
+# define _zzip_export extern __declspec(dllexport)
+# define ZEXPORT __syscall
+# define ZEXTERN extern
+# endif
+#endif
+
+#if !defined _zzip_export
+# if defined __GNUC__ /* || !defined HAVE_LIBZZIP */
+# define _zzip_export extern
+# elif defined __declspec || (defined _MSC_VER && defined ZZIP_DLL)
+# define _zzip_export extern __declspec(dllimport)
+# else
+# define _zzip_export extern
+# endif
+#endif
+
+#endif
+
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/dir.c b/Build/source/libs/zziplib/zziplib-src/zzip/dir.c
new file mode 100644
index 00000000000..439165c3a19
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/dir.c
@@ -0,0 +1,333 @@
+
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#include <zzip/lib.h> /* exported... */
+#include <zzip/file.h>
+#include <stddef.h> /*offsetof */
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+#ifdef ZZIP_HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#else
+#include <stdio.h>
+#endif
+
+#include <zzip/zzip32.h>
+#include <zzip/__dirent.h>
+
+#ifndef offsetof
+#pragma warning had to DEFINE offsetof as it was not in stddef.h
+#define offsetof(T,M) ((unsigned)(& ((T*)0)->M))
+#endif
+
+#ifdef ZZIP_HAVE_SYS_STAT_H
+
+/* MSVC does have IFbitmask but not the corresponding IStests */
+# if ! defined S_ISDIR && defined S_IFDIR
+# define S_ISDIR(_X_) ((_X_) & S_IFDIR)
+# endif
+# if ! defined S_ISREG && defined S_IFREG
+# define S_ISREG(_X_) ((_X_) & S_IFREG)
+# endif
+#endif
+
+/** rewind.
+ *
+ * This function is the equivalent of a => rewinddir(2) for a realdir or
+ * the zipfile in place of a directory. The ZZIP_DIR handle returned from
+ * => zzip_opendir has a flag saying realdir or zipfile. As for a zipfile,
+ * the filenames will include the filesubpath, so take care.
+ */
+void
+zzip_rewinddir(ZZIP_DIR * dir)
+{
+ if (! dir)
+ return;
+
+ if (USE_DIRENT && dir->realdir)
+ {
+ _zzip_rewinddir(dir->realdir);
+ return;
+ }
+
+ if (dir->hdr0)
+ dir->hdr = dir->hdr0;
+ else
+ dir->hdr = 0;
+}
+
+#if ! USE_DIRENT
+#define real_readdir(_X_) 1
+#else
+static int
+real_readdir(ZZIP_DIR * dir)
+{
+ struct stat st = { 0 };
+ char filename[PATH_MAX];
+ struct dirent *dirent = _zzip_readdir(dir->realdir);
+
+ if (! dirent)
+ return 0;
+
+ dir->dirent.d_name = dirent->d_name;
+ strcpy(filename, dir->realname);
+ strcat(filename, "/");
+ strcat(filename, dirent->d_name);
+
+ if (stat(filename, &st) == -1)
+ return -1;
+
+ dir->dirent.d_csize = dir->dirent.st_size = st.st_size;
+
+ if (st.st_mode)
+ {
+ if (! S_ISREG(st.st_mode))
+ {
+ dir->dirent.d_compr = st.st_mode;
+ dir->dirent.d_compr |= 0x80000000;
+ /* makes it effectively negative,
+ * but can still be fed to S_ISXXX(x) */
+ } else
+ {
+ dir->dirent.d_compr = 0; /* stored */
+ }
+ } else
+ {
+ dir->dirent.d_compr = 0; /* stored */
+ }
+
+ return 1;
+}
+#endif
+
+/** read dir.
+ *
+ * This function is the equivalent of a => readdir(2) for a realdir
+ * or a zipfile referenced by the ZZIP_DIR returned from => zzip_opendir.
+ *
+ * The ZZIP_DIR handle (as returned by => zzip_opendir) contains a few more
+ * entries than being copied into the ZZIP_DIRENT. The only valid fields in
+ * a ZZIP_DIRENT are d_name (the file name), d_compr (compression), d_csize
+ * (compressed size), st_size (uncompressed size).
+ */
+ZZIP_DIRENT *
+zzip_readdir(ZZIP_DIR * dir)
+{
+ if (! dir)
+ { errno=EBADF; return 0; }
+
+ if (USE_DIRENT && dir->realdir)
+ {
+ if (! real_readdir(dir))
+ return 0;
+ } else
+ {
+ if (! dir->hdr)
+ return 0;
+
+ dir->dirent.d_name = dir->hdr->d_name;
+ dir->dirent.d_compr = dir->hdr->d_compr;
+
+ dir->dirent.d_csize = dir->hdr->d_csize;
+ dir->dirent.st_size = dir->hdr->d_usize;
+
+ if (! dir->hdr->d_reclen)
+ dir->hdr = 0;
+ else
+ dir->hdr = (struct zzip_dir_hdr *)
+ ((char *) dir->hdr + dir->hdr->d_reclen);
+ }
+ return &dir->dirent;
+}
+
+/** => zzip_rewinddir
+ * This function is the equivalent of => telldir(2) for a realdir or zipfile.
+ */
+zzip_off_t
+zzip_telldir(ZZIP_DIR * dir)
+{
+ if (! dir)
+ { errno=EBADF; return -1; }
+
+ if (USE_DIRENT && dir->realdir)
+ {
+ return _zzip_telldir(dir->realdir);
+ } else
+ {
+ return ((zzip_off_t) ((char *) dir->hdr - (char *) dir->hdr0));
+ }
+}
+
+/** => zzip_rewinddir
+ * This function is the equivalent of => seekdir(2) for a realdir or zipfile.
+ */
+void
+zzip_seekdir(ZZIP_DIR * dir, zzip_off_t offset)
+{
+ if (! dir)
+ return;
+
+ if (USE_DIRENT && dir->realdir)
+ {
+ _zzip_seekdir(dir->realdir, offset);
+ } else
+ {
+ dir->hdr = (struct zzip_dir_hdr *)
+ (dir->hdr0 ? (char *) dir->hdr0 + (size_t) offset : 0);
+ }
+}
+
+#ifndef EOVERFLOW
+#define EOVERFLOW EFBIG
+#endif
+
+/** => zzip_rewinddir
+ * This function is provided for users who can not use any largefile-mode.
+ */
+long
+zzip_telldir32(ZZIP_DIR * dir)
+{
+ if (sizeof(zzip_off_t) == sizeof(long))
+ {
+ return zzip_telldir(dir);
+ } else
+ {
+ off_t off = zzip_telldir(dir);
+ if (off >= 0) {
+ register long off32 = off;
+ if (off32 == off) return off32;
+ errno = EOVERFLOW;
+ }
+ return -1;
+ }
+}
+
+/** => zzip_rewinddir
+ * This function is provided for users who can not use any largefile-mode.
+ */
+void
+zzip_seekdir32(ZZIP_DIR * dir, long offset)
+{
+ zzip_seekdir(dir, offset);
+}
+
+#if defined ZZIP_LARGEFILE_RENAME && defined EOVERFLOW && defined PIC
+/* DLL compatibility layer - so that 32bit code can link with a 64on32 too */
+
+#undef zzip_seekdir /* zzip_seekdir64 */
+#undef zzip_telldir /* zzip_telldir64 */
+
+long zzip_telldir(ZZIP_DIR * dir) { return zzip_telldir32(dir); }
+void zzip_seekdir(ZZIP_DIR * dir, long offset) { zzip_seekdir32(dir, offset); }
+#endif
+
+/** start usage.
+ *
+ * This function is the equivalent of => opendir(3) for a realdir or zipfile.
+ *
+ * This function has some magic - if the given argument-path
+ * is a directory, it will wrap a real => opendir(3) into the ZZIP_DIR
+ * structure. Otherwise it will divert to => zzip_dir_open which
+ * can also attach a ".zip" extension if needed to find the archive.
+ *
+ * the error-code is mapped to => errno(3).
+ */
+ZZIP_DIR *
+zzip_opendir(zzip_char_t * filename)
+{
+ return zzip_opendir_ext_io(filename, 0, 0, 0);
+}
+
+/** => zzip_opendir
+ * This function uses explicit ext and io instead of the internal
+ * defaults, setting them to zero is equivalent to => zzip_opendir
+ */
+ZZIP_DIR *
+zzip_opendir_ext_io(zzip_char_t * filename, int o_modes,
+ zzip_strings_t * ext, zzip_plugin_io_t io)
+{
+ zzip_error_t e;
+ ZZIP_DIR *dir;
+
+# ifdef ZZIP_HAVE_SYS_STAT_H
+ struct stat st;
+# endif
+
+ if (o_modes & (ZZIP_PREFERZIP | ZZIP_ONLYZIP))
+ goto try_zzip;
+ try_real:
+
+# ifdef ZZIP_HAVE_SYS_STAT_H
+ if (stat(filename, &st) >= 0 && S_ISDIR(st.st_mode))
+ {
+ if (USE_DIRENT)
+ {
+ _zzip_DIR *realdir = _zzip_opendir(filename);
+
+ if (realdir)
+ {
+ if (! (dir = (ZZIP_DIR *) calloc(1, sizeof(*dir))))
+ {
+ _zzip_closedir(realdir);
+ return 0;
+ } else
+ {
+ dir->realdir = realdir;
+ dir->realname = strdup(filename);
+ return dir;
+ }
+ }
+ }
+ return 0;
+ }
+# endif /* HAVE_SYS_STAT_H */
+
+ try_zzip:
+ dir = zzip_dir_open_ext_io(filename, &e, ext, io);
+ if (! dir && (o_modes & ZZIP_PREFERZIP))
+ goto try_real;
+ if (e)
+ errno = zzip_errno(e);
+ return dir;
+}
+
+/** stop usage.
+ *
+ * This function is the equivalent of => closedir(3) for a realdir or zipfile.
+ *
+ * This function is magic - if the given arg-ZZIP_DIR
+ * is a real directory, it will call the real => closedir(3) and then
+ * free the wrapping ZZIP_DIR structure. Otherwise it will divert
+ * to => zzip_dir_close which will free the ZZIP_DIR structure.
+ */
+int
+zzip_closedir(ZZIP_DIR * dir)
+{
+ if (! dir)
+ { errno = EBADF; return -1; }
+
+ if (USE_DIRENT && dir->realdir)
+ {
+ _zzip_closedir(dir->realdir);
+ free(dir->realname);
+ free(dir);
+ return 0;
+ } else
+ {
+ zzip_dir_close(dir);
+ return 0;
+ }
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/err.c b/Build/source/libs/zziplib/zziplib-src/zzip/err.c
new file mode 100644
index 00000000000..653395b6973
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/err.c
@@ -0,0 +1,163 @@
+
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ * Tomi Ollila <Tomi.Ollila@iki.fi>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#include <zzip/lib.h> /* exported... */
+#include <zlib.h>
+
+#include <string.h>
+#include <errno.h>
+
+#include <zzip/file.h>
+
+/* *INDENT-OFF* */
+static struct errlistentry { int code; const char* mesg; }
+errlist[] =
+{
+ { ZZIP_NO_ERROR, "No error" },
+ { ZZIP_OUTOFMEM,
+ "could not get temporary memory for internal structures" },
+ { ZZIP_DIR_OPEN, "Failed to open zip-file %s" },
+ { ZZIP_DIR_STAT, "Failed to fstat zip-file %s" },
+ { ZZIP_DIR_SEEK, "Failed to lseek zip-file %s" },
+ { ZZIP_DIR_READ, "Failed to read zip-file %s"},
+ { ZZIP_DIR_TOO_SHORT, "zip-file %s too short" },
+ { ZZIP_DIR_EDH_MISSING, "zip-file central directory not found" },
+ { ZZIP_DIRSIZE, "Directory size too big..." },
+ { ZZIP_ENOENT, "No such file found in zip-file %s" },
+ { ZZIP_UNSUPP_COMPR, "Unsupported compression format" },
+ { ZZIP_CORRUPTED, "Zipfile corrupted" },
+ { ZZIP_UNDEF, "Some undefined error occurred" },
+ { ZZIP_DIR_LARGEFILE, "Directory is largefile variant" },
+ { 0, 0 },
+};
+/* *INDENT-ON* */
+
+
+#define errlistSIZE (sizeof(errlist)/sizeof(*errlist))
+
+/**
+ * returns the static string for the given error code. The
+ * error code can be either a normal system error (a
+ * positive error code will flag this), it can be => libz
+ * error code (a small negative error code will flag this)
+ * or it can be an error code from => libzzip, which is an
+ * negative value lower than => ZZIP_ERROR
+ */
+zzip_char_t *
+zzip_strerror(int errcode)
+{
+ if (errcode < ZZIP_ERROR && errcode > ZZIP_ERROR - 32)
+ {
+ struct errlistentry *err = errlist;
+
+ for (; err->mesg; err++)
+ {
+ if (err->code == errcode)
+ return err->mesg;
+ }
+ errcode = EINVAL;
+ }
+
+ if (errcode < 0)
+ {
+ if (errcode == -1)
+ return strerror(errcode);
+ else
+ return zError(errcode);
+ }
+
+ return strerror(errcode);
+}
+
+/** => zzip_strerror
+ * This function fetches the errorcode from the => DIR-handle and
+ * runs it through => zzip_strerror to obtain the static string
+ * describing the error.
+ */
+zzip_char_t *
+zzip_strerror_of(ZZIP_DIR * dir)
+{
+ if (! dir)
+ return strerror(errno);
+ return zzip_strerror(dir->errcode);
+}
+
+/* *INDENT-OFF* */
+static struct errnolistentry { int code; int e_no; }
+errnolist[] =
+{
+ { Z_STREAM_ERROR, EPIPE },
+ { Z_DATA_ERROR, ESPIPE },
+ { Z_MEM_ERROR, ENOMEM },
+ { Z_BUF_ERROR, EMFILE },
+ { Z_VERSION_ERROR, ENOEXEC },
+
+ { ZZIP_DIR_OPEN, ENOTDIR },
+ { ZZIP_DIR_STAT, EREMOTE },
+ { ZZIP_DIR_SEEK, ESPIPE },
+# ifdef ESTRPIPE
+ { ZZIP_DIR_READ, ESTRPIPE},
+# else
+ { ZZIP_DIR_READ, EPIPE},
+# endif
+ { ZZIP_DIR_TOO_SHORT, ENOEXEC },
+# ifdef ENOMEDIUM
+ { ZZIP_DIR_EDH_MISSING, ENOMEDIUM },
+# else
+ { ZZIP_DIR_EDH_MISSING, EIO },
+# endif
+ { ZZIP_DIRSIZE, EFBIG },
+ { ZZIP_OUTOFMEM, ENOMEM },
+ { ZZIP_ENOENT, ENOENT },
+# ifdef EPFNOSUPPORT
+ { ZZIP_UNSUPP_COMPR, EPFNOSUPPORT },
+# else
+ { ZZIP_UNSUPP_COMPR, EACCES },
+# endif
+# ifdef EILSEQ
+ { ZZIP_CORRUPTED, EILSEQ },
+# else
+ { ZZIP_CORRUPTED, ELOOP },
+# endif
+ { ZZIP_UNDEF, EINVAL },
+ { 0, 0 },
+};
+/* *INDENT-ON* */
+
+/**
+ * map the error code to a system error code. This is used
+ * for the drop-in replacement functions to return a value
+ * that can be interpreted correctly by code sections that
+ * are unaware of the fact they their => open(2) call had been
+ * diverted to a file inside a zip-archive.
+ */
+int
+zzip_errno(int errcode)
+{
+ if (errcode >= -1)
+ {
+ return errno;
+ } else
+ {
+ struct errnolistentry *err = errnolist;
+
+ for (; err->code; err++)
+ {
+ if (err->code == errcode)
+ return err->e_no;
+ }
+ return EINVAL;
+ }
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/fetch.c b/Build/source/libs/zziplib/zziplib-src/zzip/fetch.c
new file mode 100644
index 00000000000..00a9e27c3b6
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/fetch.c
@@ -0,0 +1,121 @@
+
+/*
+ * These routines are helpers - note that this file gets linked into all the
+ * zip-access variants that refer to <zzip/format.h>. On the x86 platform the
+ * actual definitions will be empty - fetching is done on native machine-level
+ *
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#include <zzip/fetch.h>
+
+/* ------------------------- fetch helpers --------------------------------- */
+
+/** internal.
+ * Make 32 bit value in host byteorder from little-endian mapped octet-data
+ * (works also on machines which SIGBUS on misaligned data access (eg. 68000))
+ */
+uint32_t
+__zzip_get32(unsigned char *s)
+{
+#if defined __ZZIP_GET32
+ return __ZZIP_GET32(s);
+#else
+ return ((uint32_t) s[3] << 24) | ((uint32_t) s[2] << 16)
+ | ((uint32_t) s[1] << 8) | ((uint32_t) s[0]);
+#endif
+}
+
+/** => __zzip_get32
+ * This function does the same for a 16 bit value.
+ */
+uint16_t
+__zzip_get16(unsigned char *s)
+{
+#if defined __ZZIP_GET16
+ return __ZZIP_GET16(s);
+#else
+ return ((uint16_t) s[1] << 8) | ((uint16_t) s[0]);
+#endif
+}
+
+/** => __zzip_get32
+ * This function does the same for an off64_t value.
+ */
+uint64_t
+__zzip_get64(unsigned char *s)
+{
+#ifdef __GNUC__
+ /* *INDENT-OFF* */
+ register uint64_t v
+ = s[7]; v <<= 8;
+ v |= s[6]; v <<= 8;
+ v |= s[5]; v <<= 8;
+ v |= s[4]; v <<= 8;
+ v |= s[3]; v <<= 8;
+ v |= s[2]; v <<= 8;
+ v |= s[1]; v <<= 8;
+ v |= s[0]; return v;
+ /* *INDENT-ON* */
+#else
+ return ((uint64_t) s[7] << 56) | ((uint64_t) s[6] << 48)
+ | ((uint64_t) s[5] << 40) | ((uint64_t) s[4] << 32)
+ | ((uint64_t) s[3] << 24) | ((uint64_t) s[2] << 16)
+ | ((uint64_t) s[1] << 8) | ((uint64_t) s[0]);
+#endif
+}
+
+/** => __zzip_get32
+ * This function pushes a 32bit value at the specified address
+ */
+void
+__zzip_set32(unsigned char *s, uint32_t v)
+{
+#if defined __ZZIP_SET32
+ return __ZZIP_SET32(s, v);
+#else
+ /* *INDENT-OFF* */
+ s[0] = (unsigned char) (v); v >>= 8;
+ s[1] = (unsigned char) (v); v >>= 8;
+ s[2] = (unsigned char) (v); v >>= 8;
+ s[3] = (unsigned char) (v);
+ /* *INDENT-ON* */
+#endif
+}
+
+/** => __zzip_get32
+ * This function does the same for a 16 bit value.
+ */
+void
+__zzip_set16(unsigned char *s, uint16_t v)
+{
+#if defined __ZZIP_SET16
+ return __ZZIP_SET16(s, v);
+#else
+ /* *INDENT-OFF* */
+ s[0] = (unsigned char) (v); v >>= 8;
+ s[1] = (unsigned char) (v);
+ /* *INDENT-ON* */
+#endif
+}
+
+/** => __zzip_get32
+ * This function pushes a off64_t value at the specified address
+ */
+void
+__zzip_set64(unsigned char *s, uint64_t v)
+{
+ /* *INDENT-OFF* */
+ s[0] = (unsigned char) (v); v >>= 8;
+ s[1] = (unsigned char) (v); v >>= 8;
+ s[2] = (unsigned char) (v); v >>= 8;
+ s[3] = (unsigned char) (v); v >>= 8;
+ s[4] = (unsigned char) (v); v >>= 8;
+ s[5] = (unsigned char) (v); v >>= 8;
+ s[6] = (unsigned char) (v); v >>= 8;
+ s[7] = (unsigned char) (v);
+ /* *INDENT-ON* */
+}
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/fetch.h b/Build/source/libs/zziplib/zziplib-src/zzip/fetch.h
new file mode 100644
index 00000000000..9186ccb95fa
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/fetch.h
@@ -0,0 +1,374 @@
+#ifndef _ZZIP_FORMATS_H
+#define _ZZIP_FORMATS_H
+
+#include <zzip/types.h>
+#include <zzip/format.h>
+#include <zzip/stdint.h>
+#include <zzip/__hints.h>
+
+/* linux knows "byteswap.h" giving us an optimized variant */
+#ifdef ZZIP_HAVE_BYTESWAP_H
+#include <byteswap.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* get 16/32 bits from little-endian zip-file to host byteorder */
+extern uint32_t __zzip_get32(zzip_byte_t * s) ZZIP_GNUC_CONST;
+extern uint16_t __zzip_get16(zzip_byte_t * s) ZZIP_GNUC_CONST;
+extern void __zzip_set32(zzip_byte_t * s, uint32_t v);
+extern void __zzip_set16(zzip_byte_t * s, uint16_t v);
+
+extern uint64_t __zzip_get64(zzip_byte_t * s) ZZIP_GNUC_CONST;
+extern void __zzip_set64(zzip_byte_t * s, uint64_t v);
+
+/* just in case that you use a non-configure-d setup (e.g. MSVC) */
+#ifndef ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED
+# if defined __mips__ || defined __sparc__ || defined __powerpc__ || defined __arm__ || defined __ia64__
+# define ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED 11
+# endif
+#endif
+
+/* on linux with a cisc processor we can use the bswap for some extra speed */
+#ifdef ZZIP_WORDS_BIGENDIAN
+# ifndef ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED
+# if defined bswap_16 && defined bswap_32 && defined bswap_64 /* i.e. linux */
+# define _ZZIP_USE_BSWAP
+# endif
+# endif
+#endif
+
+/* little endian on intel cisc processors is the original zip format byteorder */
+#ifndef ZZIP_WORDS_BIGENDIAN
+# ifndef ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED
+# if defined __i386__ || defined __x86_64__ || defined _M_X86 || defined _M_X64
+# define _ZZIP_USE_DEREF
+# endif
+# endif
+#endif
+
+#ifdef _ZZIP_USE_BSWAP
+#define ZZIP_GET16(__p) bswap_16(*(uint16_t*)(__p))
+#define ZZIP_GET32(__p) bswap_32(*(uint32_t*)(__p))
+#define ZZIP_GET64(__p) bswap_64(*(uint64_t*)(__p))
+#define ZZIP_SET16(__p,__x) (*(uint16_t*)(__p) = bswap_16((uint16_t)(__x)))
+#define ZZIP_SET32(__p,__x) (*(uint32_t*)(__p) = bswap_32((uint32_t)(__x)))
+#define ZZIP_SET64(__p,__x) (*(uint64_t*)(__p) = bswap_64((uint64_t)(__x)))
+#elif defined _ZZIP_USE_DEREF
+#define ZZIP_GET16(__p) (*(uint16_t*)(__p))
+#define ZZIP_GET32(__p) (*(uint32_t*)(__p))
+#define ZZIP_GET64(__p) (*(uint64_t*)(__p))
+#define ZZIP_SET16(__p,__x) (*(uint16_t*)(__p) = (uint16_t)(__x))
+#define ZZIP_SET32(__p,__x) (*(uint32_t*)(__p) = (uint32_t)(__x))
+#define ZZIP_SET64(__p,__x) (*(uint64_t*)(__p) = (uint64_t)(__x))
+#else
+#define ZZIP_GET64(__p) (__zzip_get64((__p)))
+#define ZZIP_GET32(__p) (__zzip_get32((__p)))
+#define ZZIP_GET16(__p) (__zzip_get16((__p)))
+#define ZZIP_SET64(__p,__x) (__zzip_set64((__p),(__x)))
+#define ZZIP_SET32(__p,__x) (__zzip_set32((__p),(__x)))
+#define ZZIP_SET16(__p,__x) (__zzip_set16((__p),(__x)))
+#endif
+
+/* ..................... bitcorrect physical access .................... */
+
+/* zzip_file_header - the local file header */
+#define zzip_file_header_get_magic(__p) ZZIP_GET32((__p)->z_magic)
+#define zzip_file_header_set_magic(__p,__x) ZZIP_SET32((__p)->z_magic,(__x))
+#define zzip_file_header_get_flags(__p) ZZIP_GET16((__p)->z_flags)
+#define zzip_file_header_set_flags(__p,__x) ZZIP_SET16((__p)->z_flags,(__x))
+#define zzip_file_header_get_compr(__p) ZZIP_GET16((__p)->z_compr)
+#define zzip_file_header_set_compr(__p,__x) ZZIP_SET16((__p)->z_compr,(__x))
+#define zzip_file_header_get_crc32(__p) ZZIP_GET32((__p)->z_crc32)
+#define zzip_file_header_set_crc32(__p,__x) ZZIP_SET32((__p)->z_crc32,(__x))
+#define zzip_file_header_get_csize(__p) ZZIP_GET32((__p)->z_csize)
+#define zzip_file_header_set_csize(__p,__x) ZZIP_SET32((__p)->z_csize,(__x))
+#define zzip_file_header_get_usize(__p) ZZIP_GET32((__p)->z_usize)
+#define zzip_file_header_set_usize(__p,__x) ZZIP_SET32((__p)->z_usize,(__x))
+#define zzip_file_header_get_namlen(__p) ZZIP_GET16((__p)->z_namlen)
+#define zzip_file_header_set_namlen(__p,__x) ZZIP_SET16((__p)->z_namlen,(__x))
+#define zzip_file_header_get_extras(__p) ZZIP_GET16((__p)->z_extras)
+#define zzip_file_header_set_extras(__p,__x) ZZIP_SET16((__p)->z_extras,(__x))
+#define zzip_file_header_sizeof_tails(__p) (zzip_file_header_get_namlen(__p)+\
+ zzip_file_header_get_extras(__p) )
+#define zzip_file_header_check_magic(__p) ZZIP_FILE_HEADER_CHECKMAGIC((__p))
+
+/* zzip_file_trailer - data descriptor per file block */
+#define zzip_file_trailer_get_magic(__p) ZZIP_GET32((__p)->z_magic)
+#define zzip_file_trailer_set_magic(__p,__x) ZZIP_SET32((__p)->z_magic,(__x))
+#define zzip_file_header_get_crc32(__p) ZZIP_GET32((__p)->z_crc32)
+#define zzip_file_trailer_set_crc32(__p,__x) ZZIP_SET32((__p)->z_crc32,(__x))
+#define zzip_file_trailer_get_csize(__p) ZZIP_GET32((__p)->z_csize)
+#define zzip_file_trailer_set_csize(__p,__x) ZZIP_SET32((__p)->z_csize,(__x))
+#define zzip_file_trailer_get_usize(__p) ZZIP_GET32((__p)->z_usize)
+#define zzip_file_trailer_set_usize(__p,__x) ZZIP_SET32((__p)->z_usize,(__x))
+#define zzip_file_trailer_sizeof_tails(__p) 0
+#define zzip_file_trailer_check_magic(__p) ZZIP_FILE_TRAILER_CHECKMAGIC((__p))
+/* zzip_disk_entry (currently named zzip_root_dirent) */
+#define zzip_disk_entry_get_magic(__p) ZZIP_GET32((__p)->z_magic)
+#define zzip_disk_entry_set_magic(__p,__x) ZZIP_SET32((__p)->z_magic,(__x))
+#define zzip_disk_entry_get_flags(__p) ZZIP_GET16((__p)->z_flags)
+#define zzip_disk_entry_set_flags(__p,__x) ZZIP_SET16((__p)->z_flags,(__x))
+#define zzip_disk_entry_get_compr(__p) ZZIP_GET16((__p)->z_compr)
+#define zzip_disk_entry_set_compr(__p,__x) ZZIP_SET16((__p)->z_compr,(__x))
+#define zzip_disk_entry_get_crc32(__p) ZZIP_GET32((__p)->z_crc32)
+#define zzip_disk_entry_set_crc32(__p,__x) ZZIP_SET32((__p)->z_crc32,(__x))
+#define zzip_disk_entry_get_csize(__p) ZZIP_GET32((__p)->z_csize)
+#define zzip_disk_entry_set_csize(__p,__x) ZZIP_SET32((__p)->z_csize,(__x))
+#define zzip_disk_entry_get_usize(__p) ZZIP_GET32((__p)->z_usize)
+#define zzip_disk_entry_set_usize(__p,__x) ZZIP_SET32((__p)->z_usize,(__x))
+#define zzip_disk_entry_get_namlen(__p) ZZIP_GET16((__p)->z_namlen)
+#define zzip_disk_entry_set_namlen(__p,__x) ZZIP_SET16((__p)->z_namlen,(__x))
+#define zzip_disk_entry_get_extras(__p) ZZIP_GET16((__p)->z_extras)
+#define zzip_disk_entry_set_extras(__p,__x) ZZIP_SET16((__p)->z_extras,(__x))
+#define zzip_disk_entry_get_comment(__p) ZZIP_GET16((__p)->z_comment)
+#define zzip_disk_entry_set_comment(__p,__x) ZZIP_SET16((__p)->z_comment,(__x))
+#define zzip_disk_entry_get_diskstart(__p) ZZIP_GET16((__p)->z_diskstart)
+#define zzip_disk_entry_set_diskstart(__p,__x) ZZIP_SET16((__p)->z_diskstart,(__x))
+#define zzip_disk_entry_get_filetype(__p) ZZIP_GET16((__p)->z_filetype)
+#define zzip_disk_entry_set_filetype(__p,__x) ZZIP_SET16((__p)->z_filetype,(__x))
+#define zzip_disk_entry_get_filemode(__p) ZZIP_GET32((__p)->z_filemode)
+#define zzip_disk_entry_set_filemode(__p,__x) ZZIP_SET32((__p)->z_filemode,(__x))
+#define zzip_disk_entry_get_offset(__p) ZZIP_GET32((__p)->z_offset)
+#define zzip_disk_entry_set_offset(__p,__x) ZZIP_SET32((__p)->z_offset,(__x))
+#define zzip_disk_entry_sizeof_tails(__p) (zzip_disk_entry_get_namlen(__p) +\
+ zzip_disk_entry_get_extras(__p) +\
+ zzip_disk_entry_get_comment(__p) )
+#define zzip_disk_entry_check_magic(__p) ZZIP_DISK_ENTRY_CHECKMAGIC((__p))
+
+/* zzip_disk_trailer - the zip archive entry point */
+#define zzip_disk_trailer_get_magic(__p) ZZIP_GET32((__p)->z_magic)
+#define zzip_disk_trailer_set_magic(__p,__x) ZZIP_SET32((__p)->z_magic,(__x))
+#define zzip_disk_trailer_get_disk(__p) ZZIP_GET16((__p)->z_disk)
+#define zzip_disk_trailer_set_disk(__p,__x) ZZIP_SET16((__p)->z_disk,(__x))
+#define zzip_disk_trailer_get_finaldisk(__p) ZZIP_GET16((__p)->z_finaldisk)
+#define zzip_disk_trailer_set_finaldisk(__p,__x) ZZIP_SET16((__p)->z_finaldisk,(__x))
+#define zzip_disk_trailer_get_entries(__p) ZZIP_GET16((__p)->z_entries)
+#define zzip_disk_trailer_set_entries(__p,__x) ZZIP_SET16((__p)->z_entries,(__x))
+#define zzip_disk_trailer_get_finalentries(__p) ZZIP_GET16((__p)->z_finalentries)
+#define zzip_disk_trailer_set_finalentries(__p,__x) ZZIP_SET16((__p)->z_finalentries,(__x))
+#define zzip_disk_trailer_get_rootsize(__p) ZZIP_GET32((__p)->z_rootsize)
+#define zzip_disk_trailer_set_rootsize(__p,__x) ZZIP_SET32((__p)->z_rootsize,(__x))
+#define zzip_disk_trailer_get_rootseek(__p) ZZIP_GET32((__p)->z_rootseek)
+#define zzip_disk_trailer_set_rootseek(__p,__x) ZZIP_SET32((__p)->z_rootseek,(__x))
+#define zzip_disk_trailer_get_comment(__p) ZZIP_GET16((__p)->z_comment)
+#define zzip_disk_trailer_set_comment(__p,__x) ZZIP_SET16((__p)->z_comment,(__x))
+#define zzip_disk_trailer_sizeof_tails(__p) ( zzip_disk_entry_get_comment(__p))
+#define zzip_disk_trailer_check_magic(__p) ZZIP_DISK_TRAILER_CHECKMAGIC((__p))
+
+/* extra field should be type + size + data + type + size + data ... */
+#define zzip_extra_block_get_datatype(__p) ZZIP_GET16((zzip_byte_t*)(__p))
+#define zzip_extra_block_set_datatype(__p,__x) ZZIP_SET16((zzip_byte_t*)(__p),__x)
+#define zzip_extra_block_get_datasize(__p) ZZIP_GET16((zzip_byte_t*)(__p)+2)
+#define zzip_extra_block_set_datasize(__p,__x) ZZIP_SET16((zzip_byte_t*)(__p)+2,__x)
+
+/* zzip64_disk_trailer - the zip64 archive entry point */
+#define zzip_disk64_trailer_get_magic(__p) ZZIP_GET32((__p)->z_magic)
+#define zzip_disk64_trailer_set_magic(__p,__x) ZZIP_SET32((__p)->z_magic,(__x))
+#define zzip_disk64_trailer_get_size(__p) ZZIP_GET64((__p)->z_size)
+#define zzip_disk64_trailer_set_size(__p,__x) ZZIP_SET64((__p)->z_size,(__x))
+#define zzip_disk64_trailer_get_disk(__p) ZZIP_GET32((__p)->z_disk)
+#define zzip_disk64_trailer_set_disk(__p,__x) ZZIP_SET32((__p)->z_disk,(__x))
+#define zzip_disk64_trailer_get_finaldisk(__p) ZZIP_GET32((__p)->z_finaldisk)
+#define zzip_disk64_trailer_set_finaldisk(__p,__x) ZZIP_SET32((__p)->z_finaldisk,(__x))
+#define zzip_disk64_trailer_get_entries(__p) ZZIP_GET64((__p)->z_entries)
+#define zzip_disk64_trailer_set_entries(__p,__x) ZZIP_SET64((__p)->z_entries,(__x))
+#define zzip_disk64_trailer_get_finalentries(__p) ZZIP_GET64((__p)->z_finalentries)
+#define zzip_disk64_trailer_set_finalentries(__p,__x) ZZIP_SET64((__p)->z_finalentries,(__x))
+#define zzip_disk64_trailer_get_rootsize(__p) ZZIP_GET64((__p)->z_rootsize)
+#define zzip_disk64_trailer_set_rootsize(__p,__x) ZZIP_SET64((__p)->z_rootsize,(__x))
+#define zzip_disk64_trailer_get_rootseek(__p) ZZIP_GET64((__p)->z_rootseek)
+#define zzip_disk64_trailer_set_rootseek(__p,__x) ZZIP_SET64((__p)->z_rootseek,(__x))
+#define zzip_disk64_trailer_check_magic(__p) ZZIP_DISK64_TRAILER_CHECKMAGIC((__p))
+
+/* .............. some logical typed access wrappers ....................... */
+
+/* zzip_file_header - the local file header */
+#define zzip_file_header_csize(__p) ((zzip_size_t) \
+ zzip_file_header_get_csize(__p))
+#define zzip_file_header_usize(__p) ((zzip_size_t) \
+ zzip_file_header_get_usize(__p))
+#define zzip_file_header_namlen(__p) ((zzip_size_t) \
+ zzip_file_header_get_namlen(__p))
+#define zzip_file_header_extras(__p) ((zzip_size_t) \
+ zzip_file_header_get_extras(__p))
+#define zzip_file_header_sizeof_tail(__p) ((zzip_size_t) \
+ zzip_file_header_sizeof_tails(__p))
+#define zzip_file_header_sizeto_end(__p) ((zzip_size_t) \
+ (zzip_file_header_sizeof_tail(__p) + zzip_file_header_headerlength))
+#define zzip_file_header_skipto_end(__p) ((void*) (__p) + \
+ (zzip_file_header_sizeof_tail(__p) + zzip_file_header_headerlength))
+
+#define zzip_file_header_to_filename(__p) ((char*) \
+ ((char*)(__p) + zzip_file_header_headerlength))
+#define zzip_file_header_to_extras(__p) ((char*) \
+ (zzip_file_header_to_filename(__p) + zzip_file_header_namlen(__p)))
+#define zzip_file_header_to_data(__p) ((zzip_byte_t*) \
+ (zzip_file_header_to_extras(__p) + zzip_file_header_extras(__p)))
+#define zzip_file_header_to_trailer(__p) ((struct zzip_file_trailer*) \
+ (zzip_file_header_to_data(__p) + zzip_file_header_csize(__p)))
+
+/* zzip_file_trailer - data descriptor per file block */
+#define zzip_file_trailer_csize(__p) ((zzip_size_t) \
+ zzip_file_trailer_get_csize(__p))
+#define zzip_file_trailer_usize(__p) ((zzip_size_t) \
+ zzip_file_trailer_get_usize(__p))
+#define zzip_file_trailer_sizeof_tail(__p) ((zzip_size_t) \
+ zzip_file_trailer_sizeof_tails(__p))
+#define zzip_file_trailer_sizeto_end(__p) ((zzip_size_t) \
+ (zzip_file_trailer_sizeof_tail(__p) + zzip_file_trailer_headerlength))
+#define zzip_file_trailer_skipto_end(__p) ((void*) (__p) + \
+ (zzip_file_trailer_sizeof_tail(__p) + zzip_file_trailer_headerlength))
+
+/* zzip_disk_entry (currently named zzip_root_dirent) */
+#define zzip_disk_entry_csize(__p) ((zzip_size_t) \
+ zzip_disk_entry_get_csize(__p))
+#define zzip_disk_entry_usize(__p) ((zzip_size_t) \
+ zzip_disk_entry_get_usize(__p))
+#define zzip_disk_entry_namlen(__p) ((zzip_size_t) \
+ zzip_disk_entry_get_namlen(__p))
+#define zzip_disk_entry_extras(__p) ((zzip_size_t) \
+ zzip_disk_entry_get_extras(__p))
+#define zzip_disk_entry_comment(__p) ((zzip_size_t) \
+ zzip_disk_entry_get_comment(__p))
+#define zzip_disk_entry_diskstart(__p) ((int) \
+ zzip_disk_entry_get_diskstart(__p))
+#define zzip_disk_entry_filetype(__p) ((int) \
+ zzip_disk_entry_get_filetype(__p))
+#define zzip_disk_entry_filemode(__p) ((int) \
+ zzip_disk_entry_get_filemode(__p))
+#define zzip_disk_entry_fileoffset(__p) ((zzip_off_t) \
+ zzip_disk_entry_get_offset(__p))
+#define zzip_disk_entry_sizeof_tail(__p) ((zzip_size_t) \
+ zzip_disk_entry_sizeof_tails(__p))
+#define zzip_disk_entry_sizeto_end(__p) ((zzip_size_t) \
+ (zzip_disk_entry_sizeof_tail(__p) + zzip_disk_entry_headerlength))
+#define zzip_disk_entry_skipto_end(__p) ((zzip_byte_t*) (__p) + \
+ (zzip_disk_entry_sizeof_tail(__p) + zzip_disk_entry_headerlength))
+
+#define zzip_disk_entry_to_filename(__p) ((char*) \
+ ((char*)(__p) + zzip_disk_entry_headerlength))
+#define zzip_disk_entry_to_extras(__p) ((char*) \
+ (zzip_disk_entry_to_filename(__p) + zzip_disk_entry_namlen(__p)))
+#define zzip_disk_entry_to_comment(__p) ((char*) \
+ (zzip_disk_entry_to_extras(__p) + zzip_disk_entry_extras(__p)))
+#define zzip_disk_entry_to_next_entry(__p) ((struct zzip_disk_entry*) \
+ (zzip_disk_entry_to_comment(__p) + zzip_disk_entry_comment(__p)))
+
+/* zzip_disk_trailer - the zip archive entry point */
+#define zzip_disk_trailer_localdisk(__p) ((int) \
+ zzip_disk_trailer_get_disk(__p))
+#define zzip_disk_trailer_finaldisk(__p) ((int) \
+ zzip_disk_trailer_get_finaldisk(__p))
+#define zzip_disk_trailer_localentries(__p) ((int) \
+ zzip_disk_trailer_get_entries(__p))
+#define zzip_disk_trailer_finalentries(__p) ((int) \
+ zzip_disk_trailer_get_finalentries(__p))
+#define zzip_disk_trailer_rootsize(__p) ((zzip_off_t) \
+ zzip_disk_trailer_get_rootsize(__p))
+#define zzip_disk_trailer_rootseek(__p) ((zzip_off_t) \
+ zzip_disk_trailer_get_rootseek(__p))
+#define zzip_disk_trailer_comment(__p) ((zzip_size_t) \
+ zzip_disk_trailer_get_comment(__p))
+#define zzip_disk_trailer_sizeof_tail(__p) ((zzip_size_t) \
+ zzip_disk_trailer_sizeof_tails(__p))
+#define zzip_disk_trailer_sizeto_end(__p) ((zzip_size_t) \
+ (zzip_disk_trailer_sizeof_tail(__p) + zzip_disk_trailer_headerlength))
+#define zzip_disk_trailer_skipto_end(__p) ((void*) (__p) \
+ (zzip_disk_trailer_sizeof_tail(__p) + zzip_disk_trailer_headerlength))
+
+#define zzip_disk_trailer_to_comment(__p) ((char*) \
+ ((char*)(__p) + zzip_disk_trailer_headerlength))
+#define zzip_disk_trailer_to_endoffile(__p) ((void*) \
+ (zzip_disk_trailer_to_comment(__p) + zzip_disk_trailer_comment(__p)))
+
+/* zzip_disk64_trailer - the zip archive entry point */
+#define zzip_disk64_trailer_localdisk(__p) ((int) \
+ zzip_disk64_trailer_get_disk(__p))
+#define zzip_disk64_trailer_finaldisk(__p) ((int) \
+ zzip_disk64_trailer_get_finaldisk(__p))
+#define zzip_disk64_trailer_localentries(__p) ((int) \
+ zzip_disk64_trailer_get_entries(__p))
+#define zzip_disk64_trailer_finalentries(__p) ((int) \
+ zzip_disk64_trailer_get_finalentries(__p))
+#define zzip_disk64_trailer_rootsize(__p) ((zzip_off64_t) \
+ zzip_disk64_trailer_get_rootsize(__p))
+#define zzip_disk64_trailer_rootseek(__p) ((zzip_off64_t) \
+ zzip_disk64_trailer_get_rootseek(__p))
+#define zzip_disk64_trailer_sizeof_tail(__p) ((zzip_size_t) \
+ zzip_disk64_trailer_get_size(__p) - zzip_disk64_trailer_headerlength)
+#define zzip_disk64_trailer_sizeto_end(__p) ((zzip_size_t) \
+ zzip_disk64_trailer_get_size(__p))
+#define zzip_disk64_trailer_skipto_end(__p) ((void*) \
+ ((char*)(__p) + zzip_disk64_sizeto_end(__p)))
+
+/* extra field should be type + size + data + type + size + data ... */
+#define zzip_extra_block_sizeof_tail(__p) ((zzip_size_t) \
+ (zzip_extra_block_get_datasize(__p)))
+#define zzip_extra_block_sizeto_end(__p) ((zzip_size_t) \
+ (zzip_extra_block_sizeof_tail(__p) + zzip_extra_block_headerlength))
+#define zzip_extra_block_skipto_end(__p) ((void*) (__p) \
+ (zzip_extra_block_sizeof_tail(__p) + zzip_extra_block_headerlength))
+
+/* ................... and put these to the next level ................ */
+
+#define zzip_file_header_data_encrypted(__p) \
+ ZZIP_IS_ENCRYPTED( zzip_file_header_get_flags(__p) )
+#define zzip_file_header_data_comprlevel(__p) \
+ ZZIP_IS_COMPRLEVEL( zzip_file_header_get_flags(__p) )
+#define zzip_file_header_data_streamed(__p) \
+ ZZIP_IS_STREAMED( zzip_file_header_get_flags(__p) )
+#define zzip_file_header_data_stored(__p) \
+ ( ZZIP_IS_STORED == zzip_file_header_get_compr(__p) )
+#define zzip_file_header_data_deflated(__p) \
+ ( ZZIP_IS_DEFLATED == zzip_file_header_get_compr(__p) )
+
+#define zzip_disk_entry_data_encrypted(__p) \
+ ZZIP_IS_ENCRYPTED( zzip_disk_entry_get_flags(__p) )
+#define zzip_disk_entry_data_comprlevel(__p) \
+ ZZIP_IS_COMPRLEVEL( zzip_disk_entry_get_flags(__p) )
+#define zzip_disk_entry_data_streamed(__p) \
+ ZZIP_IS_STREAMED( zzip_disk_entry_get_flags(__p) )
+#define zzip_disk_entry_data_stored(__p) \
+ ( ZZIP_IS_STORED == zzip_disk_entry_get_compr(__p) )
+#define zzip_disk_entry_data_deflated(__p) \
+ ( ZZIP_IS_DEFLATED == zzip_disk_entry_get_compr(__p) )
+#define zzip_disk_entry_data_ascii(__p) \
+ ( zzip_disk_entry_get_filetype(__p) & 1)
+
+#define zzip_file_header_data_not_deflated(__p) \
+ (zzip_file_header_data_stored(__p))
+#define zzip_file_header_data_std_deflated(__p) \
+ (zzip_file_header_data_deflated(__p) && \
+ zzip_file_header_data_comprlevel(__p) == ZZIP_DEFLATED_STD_COMPR)
+#define zzip_file_header_data_max_deflated(__p) \
+ (zzip_file_header_data_deflated(__p) && \
+ zzip_file_header_data_comprlevel(__p) == ZZIP_DEFLATED_MAX_COMPR)
+#define zzip_file_header_data_low_deflated(__p) \
+ (zzip_file_header_data_deflated(__p) && \
+ zzip_file_header_data_comprlevel(__p) == ZZIP_DEFLATED_LOW_COMPR)
+#define zzip_file_header_data_min_deflated(__p) \
+ (zzip_file_header_data_deflated(__p) && \
+ zzip_file_header_data_comprlevel(__p) == ZZIP_DEFLATED_MIN_COMPR)
+
+#define zzip_disk_entry_data_not_deflated(__p) \
+ (zzip_disk_entry_data_stored(__p))
+#define zzip_disk_entry_data_std_deflated(__p) \
+ (zzip_disk_entry_data_deflated(__p) && \
+ zzip_disk_entry_data_comprlevel(__p) == ZZIP_DEFLATED_STD_COMPR)
+#define zzip_disk_entry_data_max_deflated(__p) \
+ (zzip_disk_entry_data_deflated(__p) && \
+ zzip_disk_entry_data_comprlevel(__p) == ZZIP_DEFLATED_MAX_COMPR)
+#define zzip_disk_entry_data_low_deflated(__p) \
+ (zzip_disk_entry_data_deflated(__p) && \
+ zzip_disk_entry_data_comprlevel(__p) == ZZIP_DEFLATED_LOW_COMPR)
+#define zzip_disk_entry_data_min_deflated(__p) \
+ (zzip_disk_entry_data_deflated(__p) && \
+ zzip_disk_entry_data_comprlevel(__p) == ZZIP_DEFLATED_MIN_COMPR)
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/file.c b/Build/source/libs/zziplib/zziplib-src/zzip/file.c
new file mode 100644
index 00000000000..d4a75425185
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/file.c
@@ -0,0 +1,1180 @@
+
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ * Tomi Ollila <Tomi.Ollila@iki.fi>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#include <zzip/lib.h> /* exported... */
+#include <zzip/file.h>
+
+#include <string.h>
+#include <sys/stat.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+#include <zzip/format.h>
+#include <zzip/fetch.h>
+#include <zzip/zzip32.h>
+#include <zzip/__debug.h>
+
+#if 0
+# if defined ZZIP_HAVE_IO_H
+# include <io.h> /* tell */
+# else
+# define tell(fd) lseek(fd,0,SEEK_CUR)
+# endif
+#else
+#define tells(fd) seeks(fd,0,SEEK_CUR)
+#endif
+
+/** end usage.
+ * This function is the direct call of => zzip_close(fp). It will cleanup the
+ * inflate-portion of => zlib and free the structure given.
+ *
+ * it is called quite from the error-cleanup parts
+ * of the various => _open functions.
+ *
+ * the .refcount is decreased and if zero the fp->dir is closed just as well.
+ */
+int
+zzip_file_close(ZZIP_FILE * fp)
+{
+ auto int self;
+ ZZIP_DIR *dir = fp->dir;
+
+ if (fp->method)
+ inflateEnd(&fp->d_stream); /* inflateEnd() can be called many times */
+
+ if (dir->cache.locked == NULL)
+ dir->cache.locked = &self;
+
+ if (fp->buf32k)
+ {
+ if (dir->cache.locked == &self && dir->cache.buf32k == NULL)
+ dir->cache.buf32k = fp->buf32k;
+ else
+ free(fp->buf32k);
+ }
+
+ if (dir->currentfp == fp)
+ dir->currentfp = NULL;
+
+ dir->refcount--;
+ /* ease to notice possible dangling reference errors */
+ memset(fp, 0, sizeof(*fp));
+
+ if (dir->cache.locked == &self && dir->cache.fp == NULL)
+ dir->cache.fp = fp;
+ else
+ free(fp);
+
+ if (dir->cache.locked == &self)
+ dir->cache.locked = NULL;
+
+ if (! dir->refcount)
+ return zzip_dir_close(dir);
+ else
+ return 0;
+}
+
+
+static int
+zzip_file_saveoffset(ZZIP_FILE * fp)
+{
+ if (fp)
+ {
+ int fd = fp->dir->fd;
+ zzip_off_t off = fp->io->fd.seeks(fd, 0, SEEK_CUR);
+
+ if (off < 0)
+ return -1;
+
+ fp->offset = off;
+ }
+ return 0;
+}
+
+
+/* user-definition */
+#ifndef ZZIP_BACKSLASH_DIRSEP
+#if defined HAVE_WINDOWS_H || defined ZZIP_HAVE_WINDOWS_H || defined _WIN32
+#define ZZIP_BACKSLASH_DIRSEP 1
+#elif defined ZZIP_CHECK_BACKSLASH_DIRSEPARATOR
+#define ZZIP_BACKSLASH_DIRSEP 1
+#else
+#define ZZIP_BACKSLASH_DIRSEP 0
+#endif
+#endif
+
+static zzip_char_t*
+strrchr_basename(zzip_char_t* name)
+{
+ register zzip_char_t *n = strrchr(name, '/');
+ if (n) return n + 1;
+ return name;
+}
+
+static zzip_char_t*
+dirsep_basename(zzip_char_t* name)
+{
+ register zzip_char_t *n = strrchr(name, '/');
+
+ if (ZZIP_BACKSLASH_DIRSEP)
+ {
+ register zzip_char_t *m = strrchr(name, '\\');
+ if (!n || (m && n < m))
+ n = m;
+ }
+
+ if (n) return n + 1;
+ return name;
+}
+
+#if defined strcasecmp
+#define dirsep_strcasecmp strcasecmp
+#else
+static int
+dirsep_strcasecmp(zzip_char_t * s1, zzip_char_t * s2)
+{
+ /* ASCII tolower - including mapping of backslash in normal slash */
+ static const char mapping[] = "@abcdefghijklmnopqrstuvwxyz[/]^_";
+ int c1, c2;
+
+ while (*s1 && *s2)
+ {
+ c1 = (int) (unsigned char) *s1;
+ c2 = (int) (unsigned char) *s2;
+ if ((c1 & 0xE0) == 0x40)
+ c1 = mapping[c1 & 0x1f];
+ if ((c2 & 0xE0) == 0x40)
+ c2 = mapping[c2 & 0x1f];
+ if (c1 != c2)
+ return (c1 - c2);
+ s1++;
+ s2++;
+ }
+
+ return (((int) (unsigned char) *s1) - ((int) (unsigned char) *s2));
+}
+#endif
+
+static int zzip_inflate_init(ZZIP_FILE *, struct zzip_dir_hdr *);
+
+/** start usage.
+ * This function opens an => ZZIP_FILE from an already open => ZZIP_DIR handle.
+ * Since we have a chance to reuse a cached => buf32k and => ZZIP_FILE memchunk
+ * this is the best choice to unpack multiple files.
+ *
+ * Note: the zlib supports 2..15 bit windowsize, hence we provide a 32k
+ * memchunk here... just to be safe.
+ *
+ * On error it returns null and sets errcode in the ZZIP_DIR.
+ */
+ZZIP_FILE *
+zzip_file_open(ZZIP_DIR * dir, zzip_char_t * name, int o_mode)
+{
+ auto int self;
+ zzip_error_t err = 0;
+ struct zzip_file *fp = 0;
+ struct zzip_dir_hdr *hdr = dir->hdr0;
+ int (*filename_strcmp) (zzip_char_t *, zzip_char_t *);
+ zzip_char_t* (*filename_basename)(zzip_char_t*);
+
+ filename_strcmp = (o_mode & ZZIP_CASELESS) ? dirsep_strcasecmp : strcmp;
+ filename_basename = (o_mode & ZZIP_CASELESS) ? dirsep_basename : strrchr_basename;
+
+ if (! dir)
+ return NULL;
+ if (! dir->fd || dir->fd == -1)
+ { dir->errcode = EBADF; return NULL; }
+ if (! hdr)
+ { dir->errcode = ENOENT; return NULL; }
+
+ if (o_mode & ZZIP_NOPATHS)
+ name = filename_basename(name);
+
+ while (1)
+ {
+ register zzip_char_t *hdr_name = hdr->d_name;
+
+ if (o_mode & ZZIP_NOPATHS)
+ hdr_name = filename_basename(hdr_name);
+
+ HINT4("name='%s', compr=%d, size=%d\n",
+ hdr->d_name, hdr->d_compr, hdr->d_usize);
+
+ if (! filename_strcmp(hdr_name, name))
+ {
+ switch (hdr->d_compr)
+ {
+ case 0: /* store */
+ case 8: /* inflate */
+ break;
+ default:
+ { err = ZZIP_UNSUPP_COMPR; goto error; }
+ }
+
+ if (dir->cache.locked == NULL)
+ dir->cache.locked = &self;
+
+ if (dir->cache.locked == &self && dir->cache.fp)
+ {
+ fp = dir->cache.fp;
+ dir->cache.fp = NULL;
+ /* memset(zfp, 0, sizeof *fp); cleared in zzip_file_close() */
+ } else
+ {
+ if (! (fp = (ZZIP_FILE *) calloc(1, sizeof(*fp))))
+ { err = ZZIP_OUTOFMEM; goto error; }
+ }
+
+ fp->dir = dir;
+ fp->io = dir->io;
+ dir->refcount++;
+
+ if (dir->cache.locked == &self && dir->cache.buf32k)
+ {
+ fp->buf32k = dir->cache.buf32k;
+ dir->cache.buf32k = NULL;
+ } else
+ {
+ if (! (fp->buf32k = (char *) malloc(ZZIP_32K)))
+ { err = ZZIP_OUTOFMEM; goto error; }
+ }
+
+ if (dir->cache.locked == &self)
+ dir->cache.locked = NULL;
+ /*
+ * In order to support simultaneous open files in one zip archive
+ * we'll fix the fd offset when opening new file/changing which
+ * file to read...
+ */
+
+ if (zzip_file_saveoffset(dir->currentfp) < 0)
+ { err = ZZIP_DIR_SEEK; goto error; }
+
+ fp->offset = hdr->d_off;
+ dir->currentfp = fp;
+
+ if (dir->io->fd.seeks(dir->fd, hdr->d_off, SEEK_SET) < 0)
+ { err = ZZIP_DIR_SEEK; goto error; }
+
+ {
+ /* skip local header - should test tons of other info,
+ * but trust that those are correct */
+ zzip_ssize_t dataoff;
+ struct zzip_file_header *p = (void *) fp->buf32k;
+
+ dataoff = dir->io->fd.read(dir->fd, (void *) p, sizeof(*p));
+ if (dataoff < (zzip_ssize_t) sizeof(*p))
+ { err = ZZIP_DIR_READ; goto error; }
+ if (! zzip_file_header_check_magic(p)) /* PK\3\4 */
+ { err = ZZIP_CORRUPTED; goto error; }
+
+ dataoff = zzip_file_header_sizeof_tail(p);
+
+ if (dir->io->fd.seeks(dir->fd, dataoff, SEEK_CUR) < 0)
+ { err = ZZIP_DIR_SEEK; goto error; }
+
+ fp->dataoffset = dir->io->fd.tells(dir->fd);
+ fp->usize = hdr->d_usize;
+ fp->csize = hdr->d_csize;
+ }
+
+ err = zzip_inflate_init(fp, hdr);
+ if (err)
+ goto error;
+
+ return fp;
+ } else
+ {
+ if (hdr->d_reclen == 0)
+ break;
+ hdr = (struct zzip_dir_hdr *) ((char *) hdr + hdr->d_reclen);
+ } /*filename_strcmp */
+ } /*forever */
+ dir->errcode = ZZIP_ENOENT;
+ return NULL;
+ error:
+ if (fp)
+ zzip_file_close(fp);
+ dir->errcode = err;
+ return NULL;
+}
+
+/** internal.
+ * call => inflateInit and setup fp's iterator variables,
+ * used by lowlevel => _open functions.
+ */
+static int
+zzip_inflate_init(ZZIP_FILE * fp, struct zzip_dir_hdr *hdr)
+{
+ int err;
+
+ fp->method = hdr->d_compr;
+ fp->restlen = hdr->d_usize;
+
+ if (fp->method)
+ {
+ memset(&fp->d_stream, 0, sizeof(fp->d_stream));
+
+ err = inflateInit2(&fp->d_stream, -MAX_WBITS);
+ if (err != Z_OK)
+ goto error;
+
+ fp->crestlen = hdr->d_csize;
+ }
+ return 0;
+ error:
+ if (fp)
+ zzip_file_close(fp);
+ return err;
+}
+
+/** end usage.
+ * This function closes the given ZZIP_FILE handle.
+ *
+ * If the ZZIP_FILE wraps a normal stat'fd then it is just that int'fd
+ * that is being closed and the otherwise empty ZZIP_FILE gets freed.
+ */
+int
+zzip_fclose(ZZIP_FILE * fp)
+{
+ if (! fp)
+ return 0;
+ if (! fp->dir) /* stat fd */
+ { int r = fp->io->fd.close(fp->fd); free(fp); return r; }
+ else
+ return zzip_file_close(fp);
+}
+
+/** => zzip_fclose
+ */
+int
+zzip_close(ZZIP_FILE * fp)
+{
+ return zzip_fclose(fp);
+}
+
+/** read data.
+ * This function reads data from zip-contained file.
+ *
+ * This fuction works like => read(2) and will fill the given buffer with bytes from
+ * the opened file. It will return the number of bytes read, so if the => EOF
+ * is encountered you will be prompted with the number of bytes actually read.
+ *
+ * This is the routines that needs the => buf32k buffer, and it would have
+ * need for much more polishing but it does already work quite well.
+ *
+ * Note: the 32K buffer is rather big. The original inflate-algorithm
+ * required just that but the latest zlib would work just fine with
+ * a smaller buffer.
+ */
+zzip_ssize_t
+zzip_file_read(ZZIP_FILE * fp, void *buf, zzip_size_t len)
+{
+ ZZIP_DIR *dir;
+ zzip_size_t l;
+ zzip_ssize_t rv;
+
+ if (! fp || ! fp->dir)
+ return 0;
+
+ dir = fp->dir;
+ l = fp->restlen > len ? len : fp->restlen;
+ if (fp->restlen == 0)
+ return 0;
+
+ /*
+ * If this is other handle than previous, save current seek pointer
+ * and read the file position of `this' handle.
+ */
+ if (dir->currentfp != fp)
+ {
+ if (zzip_file_saveoffset(dir->currentfp) < 0
+ || fp->io->fd.seeks(dir->fd, fp->offset, SEEK_SET) < 0)
+ { dir->errcode = ZZIP_DIR_SEEK; return -1; }
+ else
+ { dir->currentfp = fp; }
+ }
+
+ /* if more methods is to be supported, change this to `switch ()' */
+ if (fp->method) /* method != 0 == 8, inflate */
+ {
+ fp->d_stream.avail_out = l;
+ fp->d_stream.next_out = (unsigned char *) buf;
+
+ do
+ {
+ int err;
+ zzip_size_t startlen;
+
+ if (fp->crestlen > 0 && fp->d_stream.avail_in == 0)
+ {
+ zzip_size_t cl = (fp->crestlen < ZZIP_32K ?
+ fp->crestlen : ZZIP_32K);
+ /* zzip_size_t cl =
+ * fp->crestlen > 128 ? 128 : fp->crestlen;
+ */
+ zzip_ssize_t i = fp->io->fd.read(dir->fd, fp->buf32k, cl);
+
+ if (i <= 0)
+ {
+ dir->errcode = ZZIP_DIR_READ;
+ /* or ZZIP_DIR_READ_EOF ? */
+ return -1;
+ }
+ fp->crestlen -= i;
+ fp->d_stream.avail_in = i;
+ fp->d_stream.next_in = (unsigned char *) fp->buf32k;
+ }
+
+ startlen = fp->d_stream.total_out;
+ err = inflate(&fp->d_stream, Z_NO_FLUSH);
+
+ if (err == Z_STREAM_END)
+ { fp->restlen = 0; }
+ else if (err == Z_OK)
+ { fp->restlen -= (fp->d_stream.total_out - startlen); }
+ else
+ { dir->errcode = err; return -1; }
+ }
+ while (fp->restlen && fp->d_stream.avail_out);
+
+ return l - fp->d_stream.avail_out;
+ } else
+ { /* method == 0 -- unstore */
+ rv = fp->io->fd.read(dir->fd, buf, l);
+ if (rv > 0)
+ { fp->restlen-= rv; }
+ else if (rv < 0)
+ { dir->errcode = ZZIP_DIR_READ; }
+ return rv;
+ }
+}
+
+/** read data.
+ * This function will read(2) data from a real/zipped file.
+ *
+ * This function is the replacement for => read(2) will fill the given buffer with
+ * bytes from the opened file. It will return the number of bytes read, so if the EOF
+ * is encountered you will be prompted with the number of bytes actually read.
+ *
+ * If the file-handle is wrapping a stat'able file then it will actually just
+ * perform a normal => read(2)-call, otherwise => zzip_file_read is called
+ * to decompress the data stream and any error is mapped to => errno(3).
+ */
+zzip_ssize_t
+zzip_read(ZZIP_FILE * fp, void *buf, zzip_size_t len)
+{
+ if (! fp)
+ return 0;
+ if (! fp->dir)
+ { return fp->io->fd.read(fp->fd, buf, len); } /* stat fd */
+ else
+ {
+ register zzip_ssize_t v;
+
+ v = zzip_file_read(fp, buf, len);
+ if (v == -1)
+ { errno = zzip_errno(fp->dir->errcode); }
+ return v;
+ }
+}
+
+/** => zzip_read
+ */
+zzip_size_t
+zzip_fread(void *ptr, zzip_size_t size, zzip_size_t nmemb, ZZIP_FILE * file)
+{
+ if (! size)
+ size = 1;
+ return zzip_read(file, ptr, size * nmemb) / size;
+}
+
+
+#define ZZIP_WRONLY O_WRONLY
+#define ZZIP_EXCL O_EXCL
+
+#if defined O_SYNC
+#define ZZIP_SYNC O_SYNC
+#else
+#define ZZIP_SYNC 0
+#endif
+
+#if defined O_NONBLOCK
+#define ZZIP_NONBLOCK O_NONBLOCK
+#elif defined O_NDELAY
+#define ZZIP_NOCTTY O_NDELAY
+#else
+#define ZZIP_NOCTTY 0
+#endif
+
+/* ------------------------------------------------------------------- */
+
+/** start usage. also: fopen(2)
+ * This function will => fopen(3) a real/zipped file.
+ *
+ * It has some magic functionality builtin - it will first try to open
+ * the given <em>filename</em> as a normal file. If it does not
+ * exist, the given path to the filename (if any) is split into
+ * its directory-part and the file-part. A ".zip" extension is
+ * then added to the directory-part to create the name of a
+ * zip-archive. That zip-archive (if it exists) is being searched
+ * for the file-part, and if found a zzip-handle is returned.
+ *
+ * Note that if the file is found in the normal fs-directory the
+ * returned structure is mostly empty and the => zzip_read call will
+ * use the libc => read(2) to obtain data. Otherwise a => zzip_file_open
+ * is performed and any error mapped to => errno(3).
+ *
+ * unlike the posix-wrapper => zzip_open the mode-argument is
+ * a string which allows for more freedom to support the extra
+ * zzip modes called ZZIP_CASEINSENSITIVE and ZZIP_IGNOREPATH.
+ * Currently, this => zzip_fopen call will convert the following
+ * characters in the mode-string into their corrsponding mode-bits:
+ * * <code> "r" : O_RDONLY : </code> read-only
+ * * <code> "b" : O_BINARY : </code> binary (win32 specific)
+ * * <code> "f" : O_NOCTTY : </code> no char device (unix)
+ * * <code> "i" : ZZIP_CASELESS : </code> inside zip file
+ * * <code> "*" : ZZIP_NOPATHS : </code> inside zip file only
+ * all other modes will be ignored for zip-contained entries
+ * but they are transferred for compatibility and portability,
+ * including these extra sugar bits:
+ * * <code> "x" : O_EXCL :</code> fail if file did exist
+ * * <code> "s" : O_SYNC :</code> synchronized access
+ * * <code> "n" : O_NONBLOCK :</code> nonblocking access
+ * * <code> "z#" : compression level :</code> for zlib
+ * * <code> "g#" : group access :</code> unix access bits
+ * * <code> "u#" : owner access :</code> unix access bits
+ * * <code> "o#" : world access :</code> unix access bits
+ * ... the access bits are in traditional unix bit format
+ * with 7 = read/write/execute, 6 = read/write, 4 = read-only.
+ *
+ * The default access mode is 0664, and the compression level
+ * is ignored since the lib can not yet write zip files, otherwise
+ * it would be the initialisation value for the zlib deflateInit
+ * where 0 = no-compression, 1 = best-speed, 9 = best-compression.
+ *
+ * This function returns a new zzip-handle (use => zzip_close to return
+ * it). On error this function will return null setting => errno(3).
+ */
+ZZIP_FILE *
+zzip_fopen(zzip_char_t * filename, zzip_char_t * mode)
+{
+ return zzip_freopen(filename, mode, 0);
+}
+
+/** => zzip_fopen
+ *
+ * This function receives an additional argument pointing to
+ * a ZZIP_FILE* being already in use. If this extra argument is
+ * null then this function is identical with calling => zzip_fopen
+ *
+ * Per default, the old file stream is closed and only the internal
+ * structures associated with it are kept. These internal structures
+ * may be reused for the return value, and this is a lot quicker when
+ * the filename matches a zipped file that is incidentally in the very
+ * same zip arch as the old filename wrapped in the stream struct.
+ *
+ * That's simply because the zip arch's central directory does not
+ * need to be read again. As an extension for this function, if the
+ * mode-string contains a "q" then the old stream is not closed but
+ * left untouched, instead it is only given as a hint that a new
+ * file handle may share/copy the zip arch structures of the old file
+ * handle if that is possible, i.e when they are in the same zip arch.
+ *
+ * This function returns a new zzip-handle (use => zzip_close to return
+ * it). On error this function will return null setting => errno(3).
+ */
+ZZIP_FILE *
+zzip_freopen(zzip_char_t * filename, zzip_char_t * mode, ZZIP_FILE * stream)
+{
+ int o_flags = 0;
+ int o_modes = 0664;
+
+ if (! mode)
+ mode = "rb";
+
+# ifndef O_BINARY
+# define O_BINARY 0
+# endif
+# ifndef O_NOCTTY
+# define O_NOCTTY 0
+# endif
+# ifndef O_SYNC
+# define O_SYNC 0
+# endif
+# ifndef O_NONBLOCK
+# define O_NONBLOCK 0
+# endif
+
+ for (; *mode; mode++)
+ {
+ switch (*mode)
+ {
+ /* *INDENT-OFF* */
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ continue; /* ignore if not attached to other info */
+ case 'r': o_flags |= mode[1] == '+' ? O_RDWR : O_RDONLY; break;
+ case 'w': o_flags |= mode[1] == '+' ? O_RDWR : O_WRONLY;
+ o_flags |= O_TRUNC; break;
+ case 'b': o_flags |= O_BINARY; break;
+ case 'f': o_flags |= O_NOCTTY; break;
+ case 'i': o_modes |= ZZIP_CASELESS; break;
+ case '*': o_modes |= ZZIP_NOPATHS; break;
+ case 'x': o_flags |= O_EXCL; break;
+ case 's': o_flags |= O_SYNC; break;
+ case 'n': o_flags |= O_NONBLOCK; break;
+ case 'o': o_modes &=~ 07;
+ o_modes |= ((mode[1] - '0')) & 07; continue;
+ case 'g': o_modes &=~ 070;
+ o_modes |= ((mode[1] - '0') << 3) & 070; continue;
+ case 'u': o_modes &=~ 0700;
+ o_modes |= ((mode[1] - '0') << 6) & 0700; continue;
+ case 'q': o_modes |= ZZIP_FACTORY; break;
+ case 'z': /* compression level */
+ continue; /* currently ignored, just for write mode */
+ /* *INDENT-ON* */
+ }
+ }
+
+ {
+ ZZIP_FILE *fp =
+ zzip_open_shared_io(stream, filename, o_flags, o_modes, 0, 0);
+
+ if (! (o_modes & ZZIP_FACTORY) && stream)
+ zzip_file_close(stream);
+
+ return fp;
+ }
+}
+
+/** start usage.
+ * This function will => open(2) a real/zipped file
+ *
+ * It has some magic functionality builtin - it will first try to open
+ * the given <em>filename</em> as a normal file. If it does not
+ * exist, the given path to the filename (if any) is split into
+ * its directory-part and the file-part. A ".zip" extension is
+ * then added to the directory-part to create the name of a
+ * zip-archive. That zip-archive (if it exists) is being searched
+ * for the file-part, and if found a zzip-handle is returned.
+ *
+ * Note that if the file is found in the normal fs-directory the
+ * returned structure is mostly empty and the => zzip_read call will
+ * use the libc => read(2) to obtain data. Otherwise a => zzip_file_open
+ * is performed and any error mapped to => errno(3).
+ *
+ * There was a possibility to transfer zziplib-specific openmodes
+ * through o_flags but you should please not use them anymore and
+ * look into => zzip_open_ext_io to submit them down. This function
+ * is shallow in that it just extracts the zzipflags and calls
+ * * <code>zzip_open_ext_io(filename, o_flags, zzipflags|0664, 0, 0) </code>
+ * you must stop using this extra functionality (not well known anyway)
+ * since zzip_open might be later usable to open files for writing
+ * in which case the _EXTRAFLAGS will get in conflict.
+ *
+ * compare with => open(2) and => zzip_fopen
+ */
+ZZIP_FILE *
+zzip_open(zzip_char_t * filename, int o_flags)
+{
+ /* backward compatibility */
+ int o_modes = 0664;
+
+ if (o_flags & ZZIP_CASEINSENSITIVE)
+ { o_flags ^= ZZIP_CASEINSENSITIVE; o_modes |= ZZIP_CASELESS; }
+ if (o_flags & ZZIP_IGNOREPATH)
+ { o_flags ^= ZZIP_IGNOREPATH; o_modes |= ZZIP_NOPATHS; }
+ return zzip_open_ext_io(filename, o_flags, o_modes, 0, 0);
+}
+
+/* ZZIP_ONLYZIP won't work on platforms with sizeof(int) == 16bit */
+#if ZZIP_SIZEOF_INT+0 == 2
+#undef ZZIP_ONLYZIP
+#endif
+
+/** => zzip_open
+ *
+ * This function uses explicit ext and io instead of the internal
+ * defaults, setting them to zero is equivalent to => zzip_open
+ *
+ * note that the two flag types have been split into an o_flags
+ * (for fcntl-like openflags) and o_modes where the latter shall
+ * carry the zzip_flags and possibly accessmodes for unix filesystems.
+ * Since this version of zziplib can not write zipfiles, it is not
+ * yet used for anything else than zzip-specific modeflags.
+ *
+ * This function returns a new zzip-handle (use => zzip_close to return
+ * it). On error this function will return null setting => errno(3).
+ *
+ * If any ext_io handlers were used then the referenced structure
+ * should be static as the allocated ZZIP_FILE does not copy them.
+ */
+ZZIP_FILE *
+zzip_open_ext_io(zzip_char_t * filename, int o_flags, int o_modes,
+ zzip_strings_t * ext, zzip_plugin_io_t io)
+{
+ return zzip_open_shared_io(0, filename, o_flags, o_modes, ext, io);
+}
+
+/** => zzip_open
+ *
+ * This function takes an extra stream argument - if a handle has been
+ * then ext/io can be left null and the new stream handle will pick up
+ * the ext/io. This should be used only in specific environment however
+ * since => zzip_file_real does not store any ext-sequence.
+ *
+ * The benefit for this function comes in when the old file handle
+ * was openened from a file within a zip archive. When the new file
+ * is in the same zip archive then the internal zzip_dir structures
+ * will be shared. It is even quicker, as no check needs to be done
+ * anymore trying to guess the zip archive place in the filesystem,
+ * here we just check whether the zip archive's filepath is a prefix
+ * part of the filename to be opened.
+ *
+ * Note that this function is also used by => zzip_freopen that
+ * will unshare the old handle, thereby possibly closing the handle.
+ *
+ * This function returns a new zzip-handle (use => zzip_close to return
+ * it). On error this function will return null setting => errno(3).
+ */
+ZZIP_FILE *
+zzip_open_shared_io(ZZIP_FILE * stream,
+ zzip_char_t * filename, int o_flags, int o_modes,
+ zzip_strings_t * ext, zzip_plugin_io_t io)
+{
+ if (stream && stream->dir)
+ {
+ if (! ext)
+ ext = stream->dir->fileext;
+ if (! io)
+ io = stream->dir->io;
+ }
+ if (! io)
+ io = zzip_get_default_io();
+
+ if (o_modes & (ZZIP_PREFERZIP | ZZIP_ONLYZIP))
+ goto try_zzip;
+ try_real:
+ /* prefer an existing real file */
+ {
+ zzip_plugin_io_t os = (o_modes & ZZIP_ALLOWREAL)
+ ? zzip_get_default_io() : io;
+ int fd = (os->fd.open)(filename, o_flags); /* io->fd.open */
+
+ if (fd != -1)
+ {
+ ZZIP_FILE *fp = calloc(1, sizeof(ZZIP_FILE));
+
+ if (! fp)
+ { os->fd.close(fd); return 0; } /* io->fd.close */
+
+ fp->fd = fd;
+ fp->io = os;
+ return fp;
+ }
+ if (o_modes & ZZIP_PREFERZIP)
+ return 0;
+ }
+ try_zzip:
+
+ /* if the user had it in place of a normal xopen, then
+ * we better defend this lib against illegal usage */
+ if (o_flags & (O_CREAT | O_WRONLY))
+ { errno = EINVAL; return 0; }
+ if (o_flags & (O_RDWR))
+ { o_flags ^= O_RDWR; o_flags |= O_RDONLY; }
+
+ /* this is just for backward compatibility -and strictly needed to
+ * prepare ourselves for more options and more options later on... */
+ /*# if (o_modes & ZZIP_CASELESS) { o_flags |= ZZIP_CASEINSENSITIVE; } */
+ /*# if (o_modes & ZZIP_NOPATHS) { o_flags |= ZZIP_IGNOREPATH; } */
+
+ /* see if we can open a file that is a zip file */
+ {
+ char basename[PATH_MAX];
+ char *p;
+ int filename_len = strlen(filename);
+
+ if (filename_len >= PATH_MAX)
+ { errno = ENAMETOOLONG; return 0; }
+ memcpy(basename, filename, filename_len + 1);
+
+ /* see if we can share the same zip directory */
+ if (stream && stream->dir && stream->dir->realname)
+ {
+ zzip_size_t len = strlen(stream->dir->realname);
+
+ if (! memcmp(filename, stream->dir->realname, len) &&
+ filename[len] == '/' && filename[len + 1])
+ {
+ ZZIP_FILE *fp =
+ zzip_file_open(stream->dir, filename + len + 1, o_modes);
+ if (! fp)
+ { errno = zzip_errno (stream->dir->errcode); }
+ return fp;
+ }
+ }
+
+ /* per each slash in filename, check if it there is a zzip around */
+ while ((p = strrchr(basename, '/')))
+ {
+ zzip_error_t e = 0;
+ ZZIP_DIR *dir;
+ ZZIP_FILE *fp;
+ int fd;
+
+ *p = '\0';
+ /* i.e. cut at path separator == possible zipfile basename */
+ fd = __zzip_try_open(basename, o_flags | O_RDONLY | O_BINARY,
+ ext, io);
+ if (fd == -1)
+ { continue; }
+
+ /* found zip-file .... now try to parse it */
+ dir = zzip_dir_fdopen_ext_io(fd, &e, ext, io);
+ if (e)
+ { errno = zzip_errno(e); io->fd.close(fd); return 0; }
+
+ /* (p - basename) is the lenghtof zzip_dir part of the filename */
+ fp = zzip_file_open(dir, filename + (p - basename) + 1, o_modes);
+ if (! fp)
+ { errno = zzip_errno(dir->errcode); }
+ else
+ { if (! dir->realname) dir->realname = strdup (basename); }
+
+ zzip_dir_close(dir);
+ /* note: since (fp) is attached that (dir) will survive */
+ /* but (dir) is implicitly closed on next zzip_close(fp) */
+
+ return fp;
+ }
+
+ if (o_modes & ZZIP_PREFERZIP)
+ goto try_real;
+ else
+ { errno = ENOENT; return 0; }
+ }
+}
+
+#if defined ZZIP_LARGEFILE_RENAME && defined EOVERFLOW && defined PIC
+
+/* DLL compatibility layer - so that 32bit code can link with this lib too */
+
+#undef zzip_open_shared_io /* zzip_open_shared_io64 */
+#undef zzip_open_ext_io /* zzip_open_ext_io64 */
+#undef zzip_opendir_ext_io /* zzip_opendir_ext_io64 */
+
+ZZIP_FILE *zzip_open_shared_io(ZZIP_FILE * stream,
+ zzip_char_t * name, int o_flags,
+ int o_modes, zzip_strings_t * ext,
+ zzip_plugin_io_t io);
+ZZIP_FILE *zzip_open_ext_io(zzip_char_t * name, int o_flags,
+ int o_modes, zzip_strings_t * ext,
+ zzip_plugin_io_t io);
+ZZIP_DIR *zzip_opendir_ext_io(zzip_char_t * name, int o_modes,
+ zzip_strings_t * ext, zzip_plugin_io_t io);
+
+ZZIP_FILE *
+zzip_open_shared_io(ZZIP_FILE * stream,
+ zzip_char_t * name, int o_flags,
+ int o_modes, zzip_strings_t * ext, zzip_plugin_io_t io)
+{
+ if (! io)
+ return zzip_open_shared_io64(stream, name, o_flags, o_modes, ext, io);
+ errno = EOVERFLOW;
+ return NULL;
+}
+
+ZZIP_FILE *
+zzip_open_ext_io(zzip_char_t * name, int o_flags, int o_modes,
+ zzip_strings_t * ext, zzip_plugin_io_t io)
+{
+ if (! io)
+ return zzip_open_ext_io64(name, o_flags, o_modes, ext, io);
+ errno = EOVERFLOW;
+ return NULL;
+}
+
+ZZIP_DIR *
+zzip_opendir_ext_io(zzip_char_t * name, int o_modes,
+ zzip_strings_t * ext, zzip_plugin_io_t io)
+{
+ if (! io)
+ return zzip_opendir_ext_io64(name, o_modes, ext, io);
+ else
+ { errno = EOVERFLOW; return NULL; }
+}
+
+#endif /* ZZIP_LARGEFILE_RENAME && EOVERFLOW && PIC */
+
+/* ------------------------------------------------------------------- */
+
+/** rewind.
+ *
+ * This function will rewind a real/zipped file.
+ *
+ * It seeks to the beginning of this file's data in the zip,
+ * or the beginning of the file for a stat'fd.
+ */
+int
+zzip_rewind(ZZIP_FILE * fp)
+{
+ ZZIP_DIR *dir;
+ int err;
+
+ if (! fp)
+ return -1;
+
+ if (! fp->dir)
+ { /* stat fd */
+ fp->io->fd.seeks(fp->fd, 0, SEEK_SET);
+ return 0;
+ }
+
+ dir = fp->dir;
+ /*
+ * If this is other handle than previous, save current seek pointer
+ */
+ if (dir->currentfp != fp)
+ {
+ if (zzip_file_saveoffset(dir->currentfp) < 0)
+ { dir->errcode = ZZIP_DIR_SEEK; return -1; }
+ else
+ { dir->currentfp = fp; }
+ }
+
+ /* seek to beginning of this file */
+ if (fp->io->fd.seeks(dir->fd, fp->dataoffset, SEEK_SET) < 0)
+ return -1;
+
+ /* reset the inflate init stuff */
+ fp->restlen = fp->usize;
+ fp->offset = fp->dataoffset;
+
+ if (fp->method)
+ { /* method == 8, deflate */
+ err = inflateReset(&fp->d_stream);
+ if (err != Z_OK)
+ goto error;
+
+ /* start over at next inflate with a fresh read() */
+ fp->d_stream.avail_in = 0;
+ fp->crestlen = fp->csize;
+ }
+
+ return 0;
+
+ error:
+ if (fp)
+ zzip_file_close(fp);
+ return err;
+}
+
+/** seek.
+ *
+ * This function will perform a => lseek(2) operation on a real/zipped file
+ *
+ * It will try to seek to the offset specified by offset, relative to whence,
+ * which is one of SEEK_SET, SEEK_CUR or SEEK_END.
+ *
+ * If the file-handle is wrapping a stat'able file then it will actually just
+ * perform a normal => lseek(2)-call. Otherwise the relative offset
+ * is calculated, negative offsets are transformed into positive ones
+ * by rewinding the file, and then data is read until the offset is
+ * reached. This can make the function terribly slow, but this is
+ * how gzio implements it, so I'm not sure there is a better way
+ * without using the internals of the algorithm.
+ */
+zzip_off_t
+zzip_seek(ZZIP_FILE * fp, zzip_off_t offset, int whence)
+{
+ zzip_off_t cur_pos, rel_ofs, read_size, ofs;
+ ZZIP_DIR *dir;
+
+ if (! fp)
+ return -1;
+
+ if (! fp->dir)
+ { /* stat fd */
+ return fp->io->fd.seeks(fp->fd, offset, whence);
+ }
+
+ cur_pos = zzip_tell(fp);
+
+ /* calculate relative offset */
+ switch (whence)
+ {
+ case SEEK_SET: /* from beginning */
+ rel_ofs = offset - cur_pos;
+ break;
+ case SEEK_CUR: /* from current */
+ rel_ofs = offset;
+ break;
+ case SEEK_END: /* from end */
+ rel_ofs = fp->usize + offset - cur_pos;
+ break;
+ default: /* something wrong */
+ return -1;
+ }
+
+ if (rel_ofs == 0)
+ return cur_pos; /* don't have to move */
+
+ if (rel_ofs < 0)
+ { /* convert backward into forward */
+ if (zzip_rewind(fp) == -1)
+ return -1;
+
+ read_size = cur_pos + rel_ofs;
+ cur_pos = 0;
+ } else
+ { /* amount to read is positive relative offset */
+ read_size = rel_ofs;
+ }
+
+ if (read_size < 0) /* bad offset, before beginning of file */
+ return -1;
+
+ if (read_size + cur_pos > (zzip_off_t) fp->usize) /* bad offset, past EOF */
+ return -1;
+
+ if (read_size == 0) /* nothing to read */
+ return cur_pos;
+
+ dir = fp->dir;
+ /*
+ * If this is other handle than previous, save current seek pointer
+ * and read the file position of `this' handle.
+ */
+ if (dir->currentfp != fp)
+ {
+ if (zzip_file_saveoffset(dir->currentfp) < 0
+ || fp->io->fd.seeks(dir->fd, fp->offset, SEEK_SET) < 0)
+ { dir->errcode = ZZIP_DIR_SEEK; return -1; }
+ else
+ { dir->currentfp = fp; }
+ }
+
+ if (fp->method == 0)
+ { /* unstore, just lseek relatively */
+ ofs = fp->io->fd.tells(dir->fd);
+ ofs = fp->io->fd.seeks(dir->fd, read_size, SEEK_CUR);
+ if (ofs > 0)
+ { /* readjust from beginning of file */
+ ofs -= fp->dataoffset;
+ fp->restlen = fp->usize - ofs;
+ }
+ return ofs;
+ } else
+ { /* method == 8, inflate */
+ char *buf;
+
+ /*FIXME: use a static buffer! */
+ buf = (char *) malloc(ZZIP_32K);
+ if (! buf)
+ return -1;
+
+ while (read_size > 0)
+ {
+ zzip_off_t size = ZZIP_32K;
+
+ if (read_size < size /*32K */ )
+ size = read_size;
+
+ size = zzip_file_read(fp, buf, (zzip_size_t) size);
+ if (size <= 0)
+ { free(buf); return -1; }
+
+ read_size -= size;
+ }
+
+ free(buf);
+ }
+
+ return zzip_tell(fp);
+}
+
+/** tell.
+ *
+ * This function will => tell(2) the current position in a real/zipped file
+ *
+ * It will return the current offset within the real/zipped file,
+ * measured in uncompressed bytes for the zipped-file case.
+ *
+ * If the file-handle is wrapping a stat'able file then it will actually just
+ * perform a normal => tell(2)-call, otherwise the offset is
+ * calculated from the amount of data left and the total uncompressed
+ * size;
+ */
+zzip_off_t
+zzip_tell(ZZIP_FILE * fp)
+{
+ if (! fp)
+ return -1;
+
+ if (! fp->dir) /* stat fd */
+ return fp->io->fd.tells(fp->fd);
+
+ /* current uncompressed offset is uncompressed size - data left */
+ return (fp->usize - fp->restlen);
+}
+
+#ifndef EOVERFLOW
+#define EOVERFLOW EFBIG
+#endif
+
+/** => zzip_tell
+ * This function is provided for users who can not use any largefile-mode.
+ */
+long
+zzip_tell32(ZZIP_FILE * fp)
+{
+ if (sizeof(zzip_off_t) == sizeof(long))
+ {
+ return zzip_tell(fp);
+ } else
+ {
+ off_t off = zzip_tell(fp);
+ if (off >= 0) {
+ register long off32 = off;
+ if (off32 == off) return off32;
+ errno = EOVERFLOW;
+ }
+ return -1;
+ }
+}
+
+/** => zzip_seek
+ * This function is provided for users who can not use any largefile-mode.
+ */
+long
+zzip_seek32(ZZIP_FILE * fp, long offset, int whence)
+{
+ if (sizeof(zzip_off_t) == sizeof(long))
+ {
+ return zzip_seek(fp, offset, whence);
+ } else
+ {
+ off_t off = zzip_seek(fp, offset, whence);
+ if (off >= 0) {
+ register long off32 = off;
+ if (off32 == off) return off32;
+ errno = EOVERFLOW;
+ }
+ return -1;
+ }
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/file.h b/Build/source/libs/zziplib/zziplib-src/zzip/file.h
new file mode 100644
index 00000000000..e9f978b0844
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/file.h
@@ -0,0 +1,76 @@
+/*
+ * this is an internal header file - the structure contains two off_t
+ * atleast making it LARGEFILE_SENSITIVE on linux2 and solaris systems
+ * whereas about all functions just return a ZZIP_FILE* in zzip/zzip.h
+ *
+ * and so, this structure should be handled version-specific and
+ * subject to change - it had been kept binary-compatible for quite
+ * a while now so perhaps some program sources have errnously taken
+ * advantage of this file.
+ *
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ * Tomi Ollila <Tomi.Ollila@tfi.net>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#ifndef _ZZIP_FILE_H /* zzip-file.h */
+#define _ZZIP_FILE_H 1
+
+#ifndef ZZIP_32K
+#ifdef __GNUC__
+/* include zzip/lib.h beforehand in order to suppress the following warning */
+#warning zzip/file.h is an internal header, do not use it freely
+#endif
+#endif
+
+#include <zzip/lib.h>
+#include <zlib.h>
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#else
+#include <stdio.h>
+# ifdef ZZIP_HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#endif
+
+#ifdef ZZIP_HAVE_SYS_PARAM_H
+#include <sys/param.h> /* PATH_MAX */
+#endif
+
+#ifndef PATH_MAX
+# ifdef MAX_PATH /* windows */
+# define PATH_MAX MAX_PATH
+# else
+# define PATH_MAX 512
+# endif
+#endif
+/*
+ * ZZIP_FILE structure... currently no need to unionize, since structure needed
+ * for inflate is superset of structure needed for unstore.
+ *
+ * Don't make this public. Instead, create methods for needed operations.
+ */
+
+struct zzip_file
+{
+ struct zzip_dir* dir;
+ int fd;
+ int method;
+ zzip_size_t restlen;
+ zzip_size_t crestlen;
+ zzip_size_t usize;
+ zzip_size_t csize;
+ /* added dataoffset member - data offset from start of zipfile*/
+ zzip_off_t dataoffset;
+ char* buf32k;
+ zzip_off_t offset; /* offset from the start of zipfile... */
+ z_stream d_stream;
+ zzip_plugin_io_t io;
+};
+
+#endif /* _ZZIP_FILE_H */
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/format.h b/Build/source/libs/zziplib/zziplib-src/zzip/format.h
new file mode 100644
index 00000000000..99c74942acd
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/format.h
@@ -0,0 +1,229 @@
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ *
+ * The information was taken from appnote-981119-iz.zip
+ * at http://www.freesoftware.com/pub/infozip/doc/
+ * which in turn is based on PKWARE's appnote.txt
+ * (newer link: ftp://ftp.info-zip.org/pub/infozip/doc/)
+ */
+#ifndef _ZZIP_FORMAT_H /* zzipformat.h */
+#define _ZZIP_FORMAT_H
+
+#include <zzip/types.h>
+#include <zzip/__hints.h>
+/* we have ICO C 9X types defined */
+
+/*
+ * Overall zipfile format
+ * [local file header + file data stream + checksum descriptor] ...
+ * ... [disk central directory] [disk trailer record]
+ */
+
+# ifdef _MSC_VER
+# pragma pack(push, 1)
+# endif
+
+struct zzip_version
+{
+ zzip_byte_t version[1];
+ zzip_byte_t ostype[1];
+} ZZIP_GNUC_PACKED;
+
+struct zzip_dostime
+{
+ zzip_byte_t time[2];
+ zzip_byte_t date[2];
+} ZZIP_GNUC_PACKED;
+
+#ifdef ZZIP_NEED_PACKED
+/* if your compiler does interesting things about struct packing... */
+typedef zzip_byte_t zzip_version_t[2];
+typedef zzip_byte_t zzip_dostime_t[4];
+#else
+typedef struct zzip_version zzip_version_t;
+typedef struct zzip_dostime zzip_dostime_t;
+#endif
+
+#define ZZIP_CHECKMAGIC(__p,__A,__B,__C,__D) \
+ ( (((zzip_byte_t*)(__p))[0]==(__A)) && \
+ (((zzip_byte_t*)(__p))[1]==(__B)) && \
+ (((zzip_byte_t*)(__p))[2]==(__C)) && \
+ (((zzip_byte_t*)(__p))[3]==(__D)) )
+
+/* A. Local file header */
+struct zzip_file_header
+{
+# define ZZIP_FILE_HEADER_MAGIC 0x04034b50
+# define ZZIP_FILE_HEADER_CHECKMAGIC(__p) ZZIP_CHECKMAGIC(__p,'P','K','\3','\4')
+ zzip_byte_t z_magic[4]; /* local file header signature (0x04034b50) */
+ zzip_version_t z_extract; /* version needed to extract */
+ zzip_byte_t z_flags[2]; /* general purpose bit flag */
+ zzip_byte_t z_compr[2]; /* compression method */
+ zzip_dostime_t z_dostime; /* last mod file time (dos format) */
+ zzip_byte_t z_crc32[4]; /* crc-32 */
+ zzip_byte_t z_csize[4]; /* compressed size */
+ zzip_byte_t z_usize[4]; /* uncompressed size */
+ zzip_byte_t z_namlen[2]; /* filename length (null if stdin) */
+ zzip_byte_t z_extras[2]; /* extra field length */
+ /* followed by filename (of variable size) */
+ /* followed by extra field (of variable size) */
+} ZZIP_GNUC_PACKED;
+#define zzip_file_header_headerlength (4U+2U+2U+2U+4U+4U+4U+4U+2U+2U)
+
+/* B. data descriptor
+ * the data descriptor exists only if bit 3 of z_flags is set. It is byte aligned
+ * and immediately follows the last byte of compressed data. It is only used if
+ * the output media of the compressor was not seekable, eg. standard output.
+ */
+struct zzip_file_trailer
+{
+# define ZZIP_FILE_TRAILER_MAGIC 0x08074B50
+# define ZZIP_FILE_TRAILER_CHECKMAGIC(__p) ZZIP_CHECKMAGIC(__p,'P','K','\7','\8')
+ zzip_byte_t z_magic[4]; /* data descriptor signature (0x08074b50) */
+ zzip_byte_t z_crc32[4]; /* crc-32 */
+ zzip_byte_t z_csize[4]; /* compressed size */
+ zzip_byte_t z_usize[4]; /* uncompressed size */
+} ZZIP_GNUC_PACKED;
+#define zzip_file_trailer_headerlength (4U+4U+4U+4U)
+
+/* C. central directory structure:
+ [file header] . . . end of central dir record
+*/
+
+/* directory file header
+ * - a single entry including filename, extras and comment may not exceed 64k.
+ */
+
+struct zzip_disk_entry
+{
+# define ZZIP_DISK_ENTRY_MAGIC 0x02014b50
+# define ZZIP_DISK_ENTRY_CHECKMAGIC(__p) ZZIP_CHECKMAGIC(__p,'P','K','\1','\2')
+ zzip_byte_t z_magic[4]; /* central file header signature (0x02014b50) */
+ zzip_version_t z_encoder; /* version made by */
+ zzip_version_t z_extract; /* version need to extract */
+ zzip_byte_t z_flags[2]; /* general purpose bit flag */
+ zzip_byte_t z_compr[2]; /* compression method */
+ zzip_dostime_t z_dostime; /* last mod file time&date (dos format) */
+ zzip_byte_t z_crc32[4]; /* crc-32 */
+ zzip_byte_t z_csize[4]; /* compressed size */
+ zzip_byte_t z_usize[4]; /* uncompressed size */
+ zzip_byte_t z_namlen[2]; /* filename length (null if stdin) */
+ zzip_byte_t z_extras[2]; /* extra field length */
+ zzip_byte_t z_comment[2]; /* file comment length */
+ zzip_byte_t z_diskstart[2]; /* disk number of start (if spanning zip over multiple disks) */
+ zzip_byte_t z_filetype[2]; /* internal file attributes, bit0 = ascii */
+ zzip_byte_t z_filemode[4]; /* extrnal file attributes, eg. msdos attrib byte */
+ zzip_byte_t z_offset[4]; /* relative offset of local file header, seekval if singledisk */
+ /* followed by filename (of variable size) */
+ /* followed by extra field (of variable size) */
+ /* followed by file comment (of variable size) */
+} ZZIP_GNUC_PACKED;
+#define zzip_disk_entry_headerlength (4U+2U+2U+2U+2U+4U+4U+4U+4U+2U+2U+2U+2U+2U+4U+4U)
+
+
+struct zzip_root_dirent
+{ /* the old name of the structure above */
+# define ZZIP_ROOT_DIRENT_MAGIC 0x02014b50
+# define ZZIP_ROOT_DIRENT_CHECKMAGIC(__p) ZZIP_DISK_ENTRY_CHECKMAGIC(__p)
+ zzip_byte_t z_magic[4];
+ zzip_version_t z_encoder;
+ zzip_version_t z_extract;
+ zzip_byte_t z_flags[2];
+ zzip_byte_t z_compr[2];
+ zzip_dostime_t z_dostime;
+ zzip_byte_t z_crc32[4];
+ zzip_byte_t z_csize[4];
+ zzip_byte_t z_usize[4];
+ zzip_byte_t z_namlen[2];
+ zzip_byte_t z_extras[2];
+ zzip_byte_t z_comment[2];
+ zzip_byte_t z_diskstart[2];
+ zzip_byte_t z_filetype[2];
+ zzip_byte_t z_filemode[4];
+ zzip_byte_t z_off[4];
+} ZZIP_GNUC_PACKED;
+
+
+/* end of central dir record */
+struct zzip_disk_trailer
+{
+# define ZZIP_DISK_TRAILER_MAGIC 0x06054b50
+# define ZZIP_DISK_TRAILER_CHECKMAGIC(__p) ZZIP_CHECKMAGIC(__p,'P','K','\5','\6')
+ zzip_byte_t z_magic[4]; /* end of central dir signature (0x06054b50) */
+ zzip_byte_t z_disk[2]; /* number of this disk */
+ zzip_byte_t z_finaldisk[2]; /* number of the disk with the start of the central dir */
+ zzip_byte_t z_entries[2]; /* total number of entries in the central dir on this disk */
+ zzip_byte_t z_finalentries[2]; /* total number of entries in the central dir */
+ zzip_byte_t z_rootsize[4]; /* size of the central directory */
+ zzip_byte_t z_rootseek[4]; /* offset of start of central directory with respect to *
+ * the starting disk number */
+ zzip_byte_t z_comment[2]; /* zipfile comment length */
+ /* followed by zipfile comment (of variable size) */
+} ZZIP_GNUC_PACKED;
+#define zzip_disk_trailer_headerlength (4U+2U+2U+2U+2U+4U+4U+2U)
+
+/* extra field should be type + size + data + type + size + data ... */
+struct zzip_extra_block
+{ /* fetch.h macros do not need this struct */
+ zzip_byte_t z_datatype[2]; /* as input type - a mere <char*> is okay */
+ zzip_byte_t z_datasize[2]; /* being returned by xx_to_extras usually */
+} ZZIP_GNUC_PACKED;
+#define zzip_extra_block_headerlength (2U+2U)
+
+/* Zip64 end of central dir record */
+struct zzip_disk64_trailer
+{
+# define ZZIP_DISK64_TRAILER_MAGIC 0x06064b50
+# define ZZIP_DISK64_TRAILER_CHECKMAGIC(__p) ZZIP_CHECKMAGIC(__p,'P','K','\6','\6')
+ zzip_byte_t z_magic[4]; /* end of central dir signature (0x06054b50) */
+ zzip_byte_t z_size[8]; /* size of this central directory record */
+ zzip_version_t z_encoder; /* version made by */
+ zzip_version_t z_extract; /* version need to extract */
+ zzip_byte_t z_disk[4]; /* number of this disk */
+ zzip_byte_t z_finaldisk[4]; /* number of the disk with the start of the central dir */
+ zzip_byte_t z_entries[8]; /* total number of entries in the central dir on this disk */
+ zzip_byte_t z_finalentries[8]; /* total number of entries in the central dir */
+ zzip_byte_t z_rootsize[8]; /* size of the central directory */
+ zzip_byte_t z_rootseek[8]; /* offset of start of central directory with respect to *
+ * the starting disk number */
+ /* followed by zip64 extensible data sector (of variable size) */
+} ZZIP_GNUC_PACKED;
+#define zzip_disk64_trailer_headerlength (4U+8U+2U+2U+4U+4U+8U+8U+8U+8U)
+
+/* z_flags */
+#define ZZIP_IS_ENCRYPTED(p) ((*(zzip_byte_t*)p)&1)
+#define ZZIP_IS_COMPRLEVEL(p) (((*(zzip_byte_t*)p)>>1)&3)
+#define ZZIP_IS_STREAMED(p) (((*(zzip_byte_t*)p)>>3)&1)
+#define ZZIP_IS_PATCHED(p) (((*(zzip_byte_t*)p)>>5)&1)
+
+/* z_compr */
+#define ZZIP_IS_STORED 0
+#define ZZIP_IS_SHRUNK 1
+#define ZZIP_IS_REDUCEDx1 2
+#define ZZIP_IS_REDUCEDx2 3
+#define ZZIP_IS_REDUCEDx3 4
+#define ZZIP_IS_REDUCEDx4 5
+#define ZZIP_IS_IMPLODED 6
+#define ZZIP_IS_TOKENIZED 7
+#define ZZIP_IS_DEFLATED 8
+#define ZZIP_IS_DEFLATED_BETTER 9
+#define ZZIP_IS_IMPLODED_BETTER 10
+
+/* deflated comprlevel */
+#define ZZIP_DEFLATED_STD_COMPR 0
+#define ZZIP_DEFLATED_MAX_COMPR 1
+#define ZZIP_DEFLATED_LOW_COMPR 2
+#define ZZIP_DEFLATED_MIN_COMPR 3
+
+# ifdef _MSC_VER
+# pragma pack(pop)
+# endif
+
+#endif /* _ZZIPFORMAT_H */
+
+
+
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.c b/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.c
new file mode 100644
index 00000000000..3b3145ea6d3
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.c
@@ -0,0 +1,873 @@
+
+/*
+ * NOTE: this is part of libzzipfseeko (i.e. it is not libzzip).
+ * ==================
+ *
+ * These routines are fully independent from the traditional zzip
+ * implementation. They assume a readonly seekable stdio handle
+ * representing a complete zip file. The functions show how to
+ * parse the structure, find files and return a decoded bytestream.
+ *
+ * These routines are a bit simple and really here for documenting
+ * the way to access a zip file. The complexity of zip access comes
+ * from staggered reading of bytes and reposition of a filepointer in
+ * a big archive with lots of files and long compressed datastreams.
+ * Plus varaints of drop-in stdio replacements, obfuscation routines,
+ * auto fileextensions, drop-in dirent replacements, and so on...
+ *
+ * btw, we can _not_ use fgetpos/fsetpos since an fpos_t has no asserted
+ * relation to a linear seek value as specified in zip info headers. In
+ * general it is not a problem if your system has no fseeko/ftello pair
+ * since we can fallback to fseek/ftell which limits the zip disk size
+ * to 2MiBs but the zip-storable seek values are 32bit limited anyway.
+ *
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#define _LARGEFILE_SOURCE 1
+#define _ZZIP_ENTRY_STRUCT 1
+
+#include <zzip/fseeko.h>
+
+#include <zzip/fetch.h>
+#include <zzip/__mmap.h>
+#include <zzip/__fnmatch.h>
+#include <zzip/__errno.h>
+
+#include <stdlib.h>
+#include <sys/stat.h>
+
+#if defined ZZIP_HAVE_STRING_H
+#include <string.h>
+#elif defined ZZIP_HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#if defined ZZIP_HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
+#if __STDC_VERSION__+0 > 199900L
+#define ___
+#define ____
+#else
+#define ___ {
+#define ____ }
+#endif
+
+#ifndef ZZIP_HAVE_FSEEKO
+#define fseeko fseek
+#define ftello ftell
+#endif
+
+/* note that the struct zzip_entry inherits the zzip_disk_entry values
+ * and usually carries a copy of its values (in disk format!). To make the
+ * following code more readable, we use a shorthand notation for the
+ * upcast needed in C (not needed in C++) as "disk_(entry)".
+ */
+#ifdef __zzip_entry_extends_zzip_disk_entry
+#define disk_(_entry_) _entry_
+#else
+#define disk_(_entry_) (& (_entry_)->head)
+#endif
+
+/* we try to round all seeks to the pagesize - since we do not use
+ * the sys/mmap interface we have to guess a good value here: */
+#ifndef PAGESIZE
+# define PAGESIZE 8192
+#endif
+
+#ifdef DEBUG
+#define debug1(msg) do { fprintf(stderr, "DEBUG: %s : " msg "\n", __func__); } while(0)
+#define debug2(msg, arg1) do { fprintf(stderr, "DEBUG: %s : " msg "\n", __func__, arg1); } while(0)
+#define debug3(msg, arg1, arg2) do { fprintf(stderr, "DEBUG: %s : " msg "\n", __func__, arg1, arg2); } while(0)
+#define debug4(msg, arg1, arg2, arg3) do { fprintf(stderr, "DEBUG: %s : " msg "\n", __func__, arg1, arg2, arg3); } while(0)
+#else
+#define debug1(msg)
+#define debug2(msg, arg1)
+#define debug3(msg, arg1, arg2)
+#define debug4(msg, arg1, arg2, arg3)
+#endif
+
+/* ====================================================================== */
+
+/* helper functions */
+
+/** => zzip_entry_data_offset
+ * This functions read the correspoding struct zzip_file_header from
+ * the zip disk of the given "entry". The returned off_t points to the
+ * end of the file_header where the current fseek pointer has stopped.
+ * This is used to immediately parse out any filename/extras block following
+ * the file_header.
+ *
+ * Returns zero on error. (errno = EINVAL|EBADMSG|EBADF|EIO)
+ */
+static zzip_off_t
+zzip_entry_fread_file_header(ZZIP_ENTRY * entry,
+ struct zzip_file_header *file_header)
+{
+ if (! entry || ! file_header)
+ {
+ errno = EINVAL;
+ return 0;
+ }
+ ___ zzip_off_t offset = zzip_disk_entry_fileoffset(disk_(entry));
+ if (0 > offset || offset >= entry->disksize)
+ {
+ errno = EBADMSG;
+ return 0;
+ }
+
+ if (fseeko(entry->diskfile, offset, SEEK_SET) == -1)
+ {
+ debug2("fseeko failed: %s", strerror(errno));
+ return 0; /* EBADF */
+ }
+
+ ___ zzip_size_t n = fread(file_header, 1, sizeof(*file_header), entry->diskfile);
+ if (n < sizeof(*file_header))
+ {
+ debug4("fread failed: at offset %llu got %i instead of %i",
+ (long long) offset, n, sizeof(*file_header));
+ errno = ferror(entry->diskfile) ? EBADF : EIO;
+ return 0;
+ }
+ ____;
+ return offset + sizeof(*file_header);
+ ____;
+}
+
+/** helper functions for (fseeko) zip access api
+ *
+ * This functions returns the seekval offset of the data portion of the
+ * file referenced by the given zzip_entry. It requires an intermediate
+ * check of the file_header structure (i.e. it reads it from disk). After
+ * this call, the contained diskfile readposition is already set to the
+ * data_offset returned here.
+ *
+ * Returns -1 on error. (errno = EINVAL|EBADMSG)
+ */
+zzip_off_t
+zzip_entry_data_offset(ZZIP_ENTRY * entry)
+{
+ struct zzip_file_header file_header;
+ if (! entry)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+ ___ zzip_off_t offset = zzip_entry_fread_file_header(entry, &file_header);
+ if (! offset)
+ {
+ return -1; /* EBADMSG */
+ }
+ offset += zzip_file_header_sizeof_tails(&file_header);
+ if (fseeko(entry->diskfile, offset, SEEK_SET) == -1)
+ {
+ return -1; /* EBADF */
+ }
+ return offset;
+ ____;
+}
+
+/** => zzip_entry_data_offset
+ * This function is a big helper despite its little name: in a zip file the
+ * encoded filenames are usually NOT zero-terminated but for common usage
+ * with libc we need it that way. Secondly, the filename SHOULD be present
+ * in the zip central directory but if not then we fallback to the filename
+ * given in the file_header of each compressed data portion.
+ *
+ * returns: new string buffer, null on error (errno = EINVAL|ENOMEM|EBADMSG)
+ */
+zzip__new__ char *
+zzip_entry_strdup_name(ZZIP_ENTRY * entry)
+{
+ if (! entry)
+ {
+ errno = EINVAL;
+ return 0;
+ }
+
+ ___ zzip_size_t len;
+ if ((len = zzip_disk_entry_namlen(disk_(entry))))
+ {
+ char *name = malloc(len + 1);
+ if (! name)
+ {
+ return 0; /* ENOMEM */
+ }
+ memcpy(name, entry->tail, len);
+ name[len] = '\0';
+ return name;
+ }
+ ___ auto struct zzip_file_header header;
+ if (zzip_entry_fread_file_header(entry, &header)
+ && (len = zzip_file_header_namlen(&header)))
+ {
+ char *name = malloc(len + 1);
+ if (! name) {
+ return 0; /* ENOMEM */
+ }
+ ___ zzip_size_t n = fread(name, 1, len, entry->diskfile);
+ if (n < len)
+ {
+ errno = ferror(entry->diskfile) ? EBADF : EIO;
+ free (name);
+ return 0;
+ }
+ name[n] = '\0';
+ return name;
+ ____;
+ }
+ errno = EBADMSG;
+ return 0;
+ ____;
+ ____;
+}
+
+static int
+prescan_entry(ZZIP_ENTRY * entry)
+{
+ if (! entry)
+ return EINVAL;
+ ___ zzip_off_t tailsize = zzip_disk_entry_sizeof_tails(disk_(entry));
+ if (tailsize + 1 > entry->tailalloc)
+ {
+ char *newtail = realloc(entry->tail, tailsize + 1);
+ if (! newtail)
+ return ENOMEM;
+ entry->tail = newtail;
+ entry->tailalloc = tailsize + 1;
+ }
+# ifdef SIZE_MAX /* from stdint.h */
+ if ((unsigned long long)(tailsize) > (unsigned long long)(SIZE_MAX))
+ {
+ debug3("tailsize %llu bigger than sizemax %llu", (long long)(tailsize), (long long)(SIZE_MAX));
+ return EFBIG;
+ }
+# endif
+ ___ zzip_size_t readsize = fread(entry->tail, 1, tailsize, entry->diskfile);
+ /* name + comment + extras */
+ if ((zzip_off_t)readsize != tailsize) {
+ debug1("read to data");
+ return errno;
+ } else {
+ return 0;
+ } ____; ____;
+}
+
+static void
+prescan_clear(ZZIP_ENTRY * entry)
+{
+ if (! entry)
+ return;
+ if (entry->tail)
+ free(entry->tail);
+ entry->tail = 0;
+ entry->tailalloc = 0;
+}
+
+/* ====================================================================== */
+
+/** => zzip_entry_findfile
+ *
+ * This function is the first call of all the zip access functions here.
+ * It contains the code to find the first entry of the zip central directory.
+ * Here we require the stdio handle to represent a real zip file where the
+ * disk_trailer is _last_ in the file area, so that its position would be at
+ * a fixed offset from the end of the file area if not for the comment field
+ * allowed to be of variable length (which needs us to do a little search
+ * for the disk_tailer). However, in this simple implementation we disregard
+ * any disk_trailer info telling about multidisk archives, so we just return
+ * a pointer to the first entry in the zip central directory of that file.
+ *
+ * For an actual means, we are going to search backwards from the end
+ * of the mmaped block looking for the PK-magic signature of a
+ * disk_trailer. If we see one then we check the rootseek value to
+ * find the first disk_entry of the root central directory. If we find
+ * the correct PK-magic signature of a disk_entry over there then we
+ * assume we are done and we are going to return a pointer to that label.
+ *
+ * The return value is a pointer to the first zzip_disk_entry being checked
+ * to be within the bounds of the file area specified by the arguments. If
+ * no disk_trailer was found then null is returned, and likewise we only
+ * accept a disk_trailer with a seekvalue that points to a disk_entry and
+ * both parts have valid PK-magic parts. Beyond some sanity check we try to
+ * catch a common brokeness with zip archives that still allows us to find
+ * the start of the zip central directory.
+ *
+ * Returns null on error (errno = EINVAL|ENOMEM|EBADMSG|EBADF|ENOENT)
+ */
+zzip__new__ ZZIP_ENTRY *
+zzip_entry_findfirst(FILE * disk)
+{
+ if (! disk)
+ {
+ errno = EINVAL;
+ return 0;
+ }
+ if (fseeko(disk, 0, SEEK_END) == -1)
+ {
+ printf("fseeko failed: %s", strerror(errno));
+ return 0; /* EBADF */
+ }
+ ___ zzip_off_t disksize = ftello(disk);
+ if (disksize < (zzip_off_t) sizeof(struct zzip_disk_trailer))
+ {
+ errno = EBADMSG;
+ return 0;
+ }
+ /* we read out chunks of 8 KiB in the hope to match disk granularity */
+ ___ zzip_off_t pagesize = PAGESIZE; /* getpagesize() */
+ ___ ZZIP_ENTRY *entry = calloc(1, sizeof(*entry));
+ if (! entry)
+ goto error0; /* ENOMEM */
+ ___ unsigned char *buffer = malloc(pagesize);
+ if (! buffer)
+ goto error1; /* ENOMEM */
+
+ if (pagesize / 2 <= (zzip_off_t) sizeof(struct zzip_disk_trailer))
+ {
+ errno = EBADMSG;
+ goto error2;
+ }
+ /* at each step, we will fread a pagesize block which overlaps with the
+ * previous read by means of pagesize/2 step at the end of the while(1) */
+ ___ zzip_off_t mapoffs = disksize & ~(pagesize - 1);
+ ___ zzip_off_t mapsize = disksize - mapoffs;
+ if (mapoffs && mapsize < pagesize / 2)
+ {
+ mapoffs -= pagesize / 2;
+ mapsize += pagesize / 2;
+ }
+ if (mapsize >= 3*8192)
+ {
+ errno = EBADMSG;
+ goto error2;
+ }
+ while (1)
+ {
+ if (fseeko(disk, mapoffs, SEEK_SET) == -1)
+ goto error2; /* EBADF */
+ if (fread(buffer, 1, mapsize, disk) < (zzip_size_t)mapsize)
+ {
+ errno = ferror(disk) ? EBADF : EIO;
+ debug1("in fread");
+ goto error2;
+ }
+ ___ unsigned char *p =
+ buffer + mapsize - sizeof(struct zzip_disk_trailer);
+ for (; p >= buffer; p--)
+ {
+ zzip_off_t root; /* (struct zzip_disk_entry*) */
+ if (zzip_disk_trailer_check_magic(p))
+ {
+ root = zzip_disk_trailer_rootseek((struct zzip_disk_trailer *)
+ p);
+ if (root > disksize - (long) sizeof(struct zzip_disk_trailer))
+ {
+ /* first disk_entry is after the disk_trailer? can't be! */
+ struct zzip_disk_trailer *trailer =
+ (struct zzip_disk_trailer *) p;
+ zzip_off_t rootsize = zzip_disk_trailer_rootsize(trailer);
+ if (rootsize > mapoffs)
+ continue;
+ /* a common brokeness that can be fixed: we just assume the
+ * central directory was written directly before : */
+ root = mapoffs - rootsize;
+ }
+ } else if (zzip_disk64_trailer_check_magic(p))
+ {
+ struct zzip_disk64_trailer *trailer =
+ (struct zzip_disk64_trailer *) p;
+ if (sizeof(zzip_off_t) < 8)
+ {
+ debug1("disk64 trailer on non-large compile");
+ errno = EFBIG;
+ goto error2;
+ }
+ if ((p + sizeof(*trailer)) > (buffer + mapsize))
+ {
+ debug1("disk64 trailer is not complete");
+ errno = EBADMSG;
+ goto error2;
+ }
+ root = zzip_disk64_trailer_rootseek(trailer);
+ } else
+ continue;
+
+ if (!(0 <= root && root < disksize))
+ {
+ debug3("bogus rootseek value %lli (disksize %lli)", (long long)root, (long long)disksize);
+ errno = EBADMSG;
+ goto error2;
+ }
+ if (fseeko(disk, root, SEEK_SET) == -1)
+ {
+ debug2("next seeko %s", strerror(errno));
+ goto error2; /* EBADF */
+ }
+ if (fread(disk_(entry), 1, sizeof(*disk_(entry)), disk)
+ != sizeof(*disk_(entry)))
+ {
+ debug2("next freed %s", strerror(errno));
+ errno = ferror(disk) ? EBADF : EIO;
+ goto error2;
+ }
+ if (zzip_disk_entry_check_magic(entry))
+ {
+ free(buffer);
+ buffer = NULL;
+ entry->headseek = root;
+ entry->diskfile = disk;
+ entry->disksize = disksize;
+ ___ int err = prescan_entry(entry);
+ if (err)
+ {
+ debug2("prescan %s", strerror(err));
+ errno = err;
+ goto error2;
+ }
+ return entry;
+ ____;
+ }
+ }
+ ____;
+ if (! mapoffs)
+ break;
+ if (mapsize < pagesize / 2)
+ {
+ debug1("bad mapsize should not be possible");
+ errno = EBADMSG;
+ goto error2;
+ }
+ mapoffs -= pagesize / 2; /* mapsize += pagesize/2; */
+ mapsize = pagesize; /* if (mapsize > pagesize) ... */
+ if (disksize - mapoffs > 64 * 1024)
+ break;
+ }
+ errno = ENOENT; /* not found */
+ error2:
+ if (buffer != NULL)
+ free(buffer);
+ error1:
+ free(entry);
+ ____;
+ ____;
+ ____;
+ ____;
+ ____;
+ ____;
+ error0:
+ debug1("error..");
+ return 0;
+}
+
+/** => zzip_entry_findfile
+ *
+ * This function takes an existing "entry" in the central root directory
+ * (e.g. from zzip_entry_findfirst) and moves it to point to the next entry.
+ * On error it returns 0, otherwise the old entry. If no further match is
+ * found then null is returned and the entry already free()d. If you want
+ * to stop searching for matches before that case then please call
+ * => zzip_entry_free on the cursor struct ZZIP_ENTRY.
+ */
+zzip__new__ ZZIP_ENTRY *
+zzip_entry_findnext(ZZIP_ENTRY * _zzip_restrict entry)
+{
+ if (! entry)
+ {
+ errno = EINVAL;
+ return entry;
+ }
+ if (! zzip_disk_entry_check_magic(entry))
+ goto error_EBADMSG;
+ ___ zzip_off_t seek =
+ entry->headseek + zzip_disk_entry_sizeto_end(disk_(entry));
+ if (seek + (zzip_off_t) sizeof(*disk_(entry)) > entry->disksize)
+ goto error_EBADMSG;
+
+ if (fseeko(entry->diskfile, seek, SEEK_SET) == -1)
+ goto error; /* EBADF */
+ if (fread(disk_(entry), 1, sizeof(*disk_(entry)), entry->diskfile)
+ < sizeof(*disk_(entry)))
+ {
+ errno = ferror(entry->diskfile) ? EBADF : EIO;
+ goto error;
+ }
+ entry->headseek = seek;
+ if (! zzip_disk_entry_check_magic(entry))
+ goto error_EBADMSG;
+ ___ int err = prescan_entry(entry);
+ if (err)
+ {
+ errno = err;
+ goto error;
+ }
+ return entry;
+ ____;
+ error_EBADMSG:
+ errno = EBADMSG;
+ error:
+ zzip_entry_free(entry);
+ return 0;
+ ____;
+}
+
+/** => zzip_entry_findfile
+ * this function releases the malloc()ed areas needed for zzip_entry, the
+ * pointer is invalid afterwards. This function has #define synonyms of
+ * zzip_entry_findlast(), zzip_entry_findlastfile(), zzip_entry_findlastmatch()
+ */
+int
+zzip_entry_free(ZZIP_ENTRY * entry)
+{
+ if (! entry)
+ {
+ errno = EINVAL;
+ return 0;
+ }
+ prescan_clear(entry);
+ free(entry);
+ return 1;
+}
+
+/** search for files in the (fseeko) zip central directory
+ *
+ * This function is given a filename as an additional argument, to find the
+ * disk_entry matching a given filename. The compare-function is usually
+ * strcmp or strcasecmp or perhaps strcoll, if null then strcmp is used.
+ * - use null as argument for "old"-entry when searching the first
+ * matching entry, otherwise the last returned value if you look for other
+ * entries with a special "compare" function (if null then a doubled search
+ * is rather useless with this variant of _findfile). If no further entry is
+ * found then null is returned and any "old"-entry gets already free()d.
+ */
+zzip__new__ ZZIP_ENTRY *
+zzip_entry_findfile(FILE * disk, char *filename,
+ ZZIP_ENTRY * _zzip_restrict entry, zzip_strcmp_fn_t compare)
+{
+ if (! filename || ! disk)
+ {
+ errno = EINVAL;
+ return 0;
+ }
+ if (! entry)
+ entry = zzip_entry_findfirst(disk);
+ else
+ entry = zzip_entry_findnext(entry);
+
+ if (! compare)
+ compare = (zzip_strcmp_fn_t) (strcmp);
+
+ for (; entry; entry = zzip_entry_findnext(entry))
+ {
+ /* filenames within zip files are often not null-terminated! */
+ char *realname = zzip_entry_strdup_name(entry);
+ if (! realname)
+ {
+ return 0; /* ENOMEM|EBADMSG */
+ }
+ if (! compare(filename, realname))
+ {
+ free(realname);
+ return entry;
+ } else
+ {
+ free(realname);
+ continue;
+ }
+ }
+ errno = ENOENT;
+ return 0;
+}
+
+/** => zzip_entry_findfile
+ *
+ * This function uses a compare-function with an additional argument
+ * and it is called just like fnmatch(3) from POSIX.2 AD:1993), i.e.
+ * the argument filespec first and the ziplocal filename second with
+ * the integer-flags put in as third to the indirect call. If the
+ * platform has fnmatch available then null-compare will use that one
+ * and otherwise we fall back to mere strcmp, so if you need fnmatch
+ * searching then please provide an implementation somewhere else.
+ * - use null as argument for "after"-entry when searching the first
+ * matching entry, or the last disk_entry return-value to find the
+ * next entry matching the given filespec. If no further entry is
+ * found then null is returned and any "old"-entry gets already free()d.
+ */
+zzip__new__ ZZIP_ENTRY *
+zzip_entry_findmatch(FILE * disk, char *filespec,
+ ZZIP_ENTRY * _zzip_restrict entry,
+ zzip_fnmatch_fn_t compare, int flags)
+{
+ if (! filespec || ! disk)
+ {
+ errno = EINVAL;
+ return 0;
+ }
+ if (! entry)
+ entry = zzip_entry_findfirst(disk);
+ else
+ entry = zzip_entry_findnext(entry);
+
+ if (! compare)
+ compare = (zzip_fnmatch_fn_t) _zzip_fnmatch;
+
+ for (; entry; entry = zzip_entry_findnext(entry))
+ {
+ /* filenames within zip files are often not null-terminated! */
+ char *realname = zzip_entry_strdup_name(entry);
+ if (! realname)
+ {
+ return 0; /* ENOMEM|EBADMSG */
+ }
+ if (! compare(filespec, realname, flags))
+ {
+ debug3("compare '%s' equal with zip '%s'", filespec, realname);
+ free(realname);
+ return entry;
+ } else
+ {
+ debug3("compare '%s' not like zip '%s'", filespec, realname);
+ free(realname);
+ continue;
+ }
+ }
+ errno = ENOENT;
+ return 0;
+}
+
+/* ====================================================================== */
+
+/**
+ * typedef struct zzip_disk_file ZZIP_ENTRY_FILE;
+ */
+struct zzip_entry_file /* : zzip_file_header */
+{
+ struct zzip_file_header header; /* fopen detected header */
+ ZZIP_ENTRY *entry; /* fopen entry */
+ zzip_off_t data; /* for stored blocks */
+ zzip_size_t avail; /* memorized for checks on EOF */
+ zzip_size_t compressed; /* compressed flag and datasize */
+ zzip_size_t dataoff; /* offset from data start */
+ z_stream zlib; /* for inflated blocks */
+ unsigned char buffer[PAGESIZE]; /* work buffer for inflate algorithm */
+};
+
+/** open a file within a zip disk for reading
+ *
+ * This function does take an "entry" argument and copies it (or just takes
+ * it over as owner) to a new ZZIP_ENTRY_FILE handle structure. That
+ * structure contains also a zlib buffer for decoding. This function does
+ * seek to the file_header of the given "entry" and validates it for the
+ * data buffer following it. We do also prefetch some data from the data
+ * buffer thereby trying to match the disk pagesize for faster access later.
+ * The => zzip_entry_fread will then read in chunks of pagesizes which is
+ * the size of the internal readahead buffer. If an error occurs then null
+ * is returned.
+ */
+zzip__new__ ZZIP_ENTRY_FILE *
+zzip_entry_fopen(ZZIP_ENTRY * entry, int takeover)
+{
+ if (! entry)
+ {
+ errno = EINVAL;
+ return 0;
+ }
+ if (! takeover)
+ {
+ ZZIP_ENTRY *found = malloc(sizeof(*entry));
+ if (! found)
+ {
+ return 0; /* ENOMEM */
+ }
+ memcpy(found, entry, sizeof(*entry)); /* prescan_copy */
+ found->tail = malloc(found->tailalloc);
+ if (! found->tail)
+ {
+ free (found);
+ return 0; /* ENOMEM */
+ }
+ memcpy(found->tail, entry->tail, entry->tailalloc);
+ entry = found;
+ }
+ ___ ZZIP_ENTRY_FILE *file = malloc(sizeof(*file));
+ if (! file)
+ goto error1; /* ENOMEM */
+ file->entry = entry;
+ if (! zzip_entry_fread_file_header(entry, &file->header))
+ {
+ debug2("file header: %s", strerror(errno));
+ goto error2; /* EIO|EBADMSG */
+ }
+ file->avail = zzip_file_header_usize(&file->header);
+ file->data = zzip_entry_data_offset(entry);
+ file->dataoff = 0;
+
+ if (! file->avail || zzip_file_header_data_stored(&file->header))
+ { file->compressed = 0; return file; }
+
+ file->compressed = zzip_file_header_csize(&file->header);
+ file->zlib.opaque = 0;
+ file->zlib.zalloc = Z_NULL;
+ file->zlib.zfree = Z_NULL;
+
+ ___ zzip_size_t size = file->avail;
+ if (size > sizeof(file->buffer))
+ size = sizeof(file->buffer);
+ if (fseeko(file->entry->diskfile, file->data + file->dataoff, SEEK_SET) == -1)
+ {
+ debug2("file seek failed: %s", strerror(errno));
+ goto error2; /* EBADF */
+ }
+ file->zlib.next_in = file->buffer;
+ file->zlib.avail_in = fread(file->buffer, 1, size,
+ file->entry->diskfile);
+ file->dataoff += file->zlib.avail_in;
+ ____;
+
+ if (! zzip_file_header_data_deflated(&file->header)
+ || inflateInit2(&file->zlib, -MAX_WBITS) != Z_OK)
+ {
+ debug1("decompress failed");
+ errno = EBADMSG;
+ goto error2;
+ }
+
+ return file;
+ error2:
+ free(file);
+ error1:
+ zzip_entry_free(entry);
+ return 0;
+ ____;
+}
+
+/** => zzip_entry_fopen
+ *
+ * This function opens a file found by name, so it does a search into
+ * the zip central directory with => zzip_entry_findfile and whatever
+ * is found first is given to => zzip_entry_fopen
+ */
+zzip__new__ ZZIP_ENTRY_FILE *
+zzip_entry_ffile(FILE * disk, char *filename)
+{
+ ZZIP_ENTRY *entry = zzip_entry_findfile(disk, filename, 0, 0);
+ if (! entry)
+ {
+ return 0; /* EBADMSG */
+ }
+ return zzip_entry_fopen(entry, 1);
+}
+
+
+/** => zzip_entry_fopen
+ *
+ * This function reads more bytes into the output buffer specified as
+ * arguments. The return value is null on eof or error, the stdio-like
+ * interface can not distinguish between these so you need to check
+ * with => zzip_entry_feof for the difference.
+ */
+zzip_size_t
+zzip_entry_fread(void *ptr, zzip_size_t sized, zzip_size_t nmemb,
+ ZZIP_ENTRY_FILE * file)
+{
+ if (! file)
+ {
+ errno = EINVAL;
+ return 0;
+ }
+ ___ zzip_size_t size = sized * nmemb;
+ if (! file->compressed)
+ {
+ if (size > file->avail)
+ size = file->avail;
+ if (fread(ptr, 1, size, file->entry->diskfile) != size)
+ {
+ errno = ferror(file->entry->diskfile) ? EBADF : EIO;
+ debug2("uncompressed fread incomplete: %s", strerror(errno));
+ return 0;
+ }
+ file->dataoff += size;
+ file->avail -= size;
+ return size;
+ }
+
+ file->zlib.avail_out = size;
+ file->zlib.next_out = ptr;
+ ___ zzip_size_t total_old = file->zlib.total_out;
+ while (1)
+ {
+ if (! file->zlib.avail_in)
+ {
+ size = file->compressed - file->dataoff;
+ debug2("remaining compressed bytes: %lli", (long long)size);
+ if (size > sizeof(file->buffer))
+ size = sizeof(file->buffer);
+ /* fseek (file->data + file->dataoff, file->entry->diskfile); */
+ file->zlib.avail_in = fread(file->buffer, 1, size,
+ file->entry->diskfile);
+ file->zlib.next_in = file->buffer;
+ file->dataoff += file->zlib.avail_in;
+ debug2("remaining compressed fread %lli", (long long) file->zlib.avail_in);
+ }
+ if (! file->zlib.avail_in)
+ {
+ errno = EIO;
+ return 0;
+ }
+
+ ___ int err = inflate(&file->zlib, Z_NO_FLUSH);
+ if (err == Z_STREAM_END)
+ file->avail = 0;
+ else if (err == Z_OK)
+ file->avail -= file->zlib.total_out - total_old;
+ else
+ {
+ debug1("zlib decode incomplete");
+ errno = EBADMSG;
+ return 0;
+ }
+ ____;
+ if (file->zlib.avail_out && ! file->zlib.avail_in)
+ continue;
+ return file->zlib.total_out - total_old;
+ }
+ ____;
+ ____;
+}
+
+/** => zzip_entry_fopen
+ * This function releases any zlib decoder info needed for decompression
+ * and dumps the ZZIP_ENTRY_FILE struct then.
+ */
+int
+zzip_entry_fclose(ZZIP_ENTRY_FILE * file)
+{
+ if (! file)
+ {
+ errno = EINVAL;
+ return EOF;
+ }
+ if (file->compressed)
+ inflateEnd(&file->zlib);
+ zzip_entry_free(file->entry);
+ free(file);
+ return 0;
+}
+
+/** => zzip_entry_fopen
+ *
+ * This function allows to distinguish an error from an eof condition.
+ * Actually, if we found an error but we did already reach eof then we
+ * just keep on saying that it was an eof, so the app can just continue.
+ */
+int
+zzip_entry_feof(ZZIP_ENTRY_FILE * file)
+{
+ return ! file || ! file->avail;
+}
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.h b/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.h
new file mode 100644
index 00000000000..96faa011a4a
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.h
@@ -0,0 +1,154 @@
+#ifndef _ZZIP_FSEEKO_H_
+#define _ZZIP_FSEEKO_H_
+/*
+ * NOTE: this is part of libzzipfseeko (i.e. it is not libzzip).
+ *
+ * simplified zip disk access using fseeko on a stdio FILE handle
+ *
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+
+#include <zzip/types.h>
+#include <stdio.h>
+
+#ifdef _ZZIP_ENTRY_STRUCT
+#include <zlib.h>
+#include <zzip/format.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct zzip_entry ZZIP_ENTRY;
+typedef struct zzip_entry_file ZZIP_ENTRY_FILE;
+
+typedef int (*zzip_strcmp_fn_t)(char*, char*);
+typedef int (*zzip_fnmatch_fn_t)(char*, char*, int);
+
+#ifndef zzip_entry_extern
+#define zzip_entry_extern extern
+#endif
+
+zzip_entry_extern zzip_off_t
+zzip_entry_data_offset(ZZIP_ENTRY* entry);
+
+zzip__new__
+zzip_entry_extern ZZIP_ENTRY*
+zzip_entry_findfirst(FILE* file);
+
+zzip__new__
+zzip_entry_extern ZZIP_ENTRY*
+zzip_entry_findnext(ZZIP_ENTRY* _zzip_restrict entry);
+
+#define zzip_entry_findlast zzip_entry_free
+#define zzip_entry_findlastfile zzip_entry_free
+#define zzip_entry_findlastmatch zzip_entry_free
+
+zzip_entry_extern int
+zzip_entry_free(ZZIP_ENTRY* entry);
+
+zzip__new__
+zzip_entry_extern char*
+zzip_entry_strdup_name(ZZIP_ENTRY* entry);
+zzip_entry_extern char*
+zzip_entry_to_data(ZZIP_ENTRY* entry);
+
+zzip__new__
+zzip_entry_extern ZZIP_ENTRY*
+zzip_entry_findfile(FILE* disk, char* filename,
+ ZZIP_ENTRY* _zzip_restrict old,
+ zzip_strcmp_fn_t compare);
+zzip__new__
+zzip_entry_extern ZZIP_ENTRY*
+zzip_entry_findmatch(FILE* disk, char* filespec,
+ ZZIP_ENTRY* _zzip_restrict old,
+ zzip_fnmatch_fn_t compare, int flags);
+zzip__new__
+zzip_entry_extern ZZIP_ENTRY_FILE*
+zzip_entry_fopen (ZZIP_ENTRY* entry, int takeover);
+
+zzip__new__
+zzip_entry_extern ZZIP_ENTRY_FILE*
+zzip_entry_ffile (FILE* disk, char* filename);
+
+zzip_entry_extern _zzip_size_t
+zzip_entry_fread (void* ptr, _zzip_size_t size, _zzip_size_t nmemb,
+ ZZIP_ENTRY_FILE* file);
+zzip_entry_extern int
+zzip_entry_fclose (ZZIP_ENTRY_FILE* file);
+int
+zzip_entry_feof (ZZIP_ENTRY_FILE* file);
+
+# ifdef _ZZIP_ENTRY_STRUCT
+# ifdef __cplusplus
+# define __zzip_entry_extends_zzip_disk_entry
+struct zzip_entry : public struct zzip_disk_entry
+{
+ char* _zzip_restrict tail;
+ zzip_off_t tailalloc; /* the allocated size of tail */
+ FILE* diskfile; /* a file reference */
+ zzip_off_t disksize; /* the size of the file */
+ zzip_off_t headseek; /* the offset within the file */
+ zzip_off_t zz_usize;
+ zzip_off_t zz_csize; /* items scanned from header */
+ zzip_off_t zz_offset; /* or zip64 extension block */
+ int zz_diskstart;
+};
+# define zzip_entry_d(_p) (_p)
+# else
+struct zzip_entry /* : struct zzip_disk_entry */
+{
+ struct zzip_disk_entry head;
+ char* _zzip_restrict tail;
+ zzip_off_t tailalloc; /* the allocated size of tail */
+ FILE* diskfile; /* a file reference */
+ zzip_off_t disksize; /* the size of the file */
+ zzip_off_t headseek; /* the offset within the file */
+ zzip_off_t zz_usize;
+ zzip_off_t zz_csize; /* items scanned from header */
+ zzip_off_t zz_offset; /* or zip64 extension block */
+ int zz_diskstart;
+};
+# define zzip_entry_d(_p) (&(_p)->head)
+# endif /* __cplusplus */
+# endif /* _ZZIP_MEM_ENTRY_PRIVATE */
+
+#ifdef _ZZIP_ENTRY_STRUCT
+/* zzip_entry is-a zip_disk_entry => fetch.h */
+#define zzip_entry_csize(__p) ((zzip_size_t) \
+ zzip_disk_entry_get_csize(zzip_entry_d(__p)))
+#define zzip_entry_usize(__p) ((zzip_size_t) \
+ zzip_disk_entry_get_usize(zzip_entry_d(__p)))
+#define zzip_entry_compr(__p) ( \
+ zzip_disk_entry_get_compr(zzip_entry_d(__p)))
+#define zzip_entry_flags(__p) ( \
+ zzip_disk_entry_get_flags(zzip_entry_d(__p)))
+#define zzip_entry_namlen(__p) ((zzip_size_t) \
+ zzip_disk_entry_get_namlen(zzip_entry_d(__p)))
+#define zzip_entry_extras(__p) ((zzip_size_t) \
+ zzip_disk_entry_get_extras(zzip_entry_d(__p)))
+#define zzip_entry_comment(__p) ((zzip_size_t) \
+ zzip_disk_entry_get_comment(zzip_entry_d(__p)))
+#define zzip_entry_diskstart(__p) ((int) \
+ zzip_disk_entry_get_diskstart(zzip_entry_d(__p)))
+#define zzip_entry_filetype(__p) ((int) \
+ zzip_disk_entry_get_filetype(zzip_entry_d(__p)))
+#define zzip_entry_filemode(__p) ((int) \
+ zzip_disk_entry_get_filemode(zzip_entry_d(__p)))
+#define zzip_entry_fileoffset(__p) ((zzip_off_t) \
+ zzip_disk_entry_get_offset(zzip_entry_d(__p)))
+#define zzip_entry_sizeof_tail(__p) ((zzip_size_t) \
+ zzip_disk_entry_sizeof_tails(zzip_entry_d(__p)))
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+}
+#endif
+#endif
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/info.c b/Build/source/libs/zziplib/zziplib-src/zzip/info.c
new file mode 100644
index 00000000000..4b7e941b8e7
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/info.c
@@ -0,0 +1,151 @@
+
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#include <zzip/lib.h> /* exported... */
+#include <zzip/file.h>
+#include <zzip/format.h>
+
+#ifdef ZZIP_HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#else
+#include <stdlib.h>
+#include <stdio.h>
+#endif
+
+/** get errror status.
+ * This function just returns dir->errcode of the ZZIP_DIR handle
+ * see: => zzip_dir_open, => zzip_dir_open, => zzip_readdir, => zzip_dir_read
+ */
+int
+zzip_error(ZZIP_DIR * dir)
+{
+ return dir->errcode;
+}
+
+/** => zzip_error
+ * This function just does dir->errcode = errcode
+ */
+void
+zzip_seterror(ZZIP_DIR * dir, int errcode) { dir->errcode = errcode; }
+
+/** get handle.
+ * This function will just return the fp->dir value.
+ *
+ * If a ZZIP_FILE is contained within a zip-file that one will be a valid
+ * pointer, otherwise a NULL is returned and the ZZIP_FILE wraps a real file.
+ */
+ZZIP_DIR *
+zzip_dirhandle(ZZIP_FILE * fp)
+{
+ return fp->dir;
+}
+
+/** => zzip_dirhandle
+ * This function will just return dir->fd
+ *
+ * If a ZZIP_DIR does point to a zipfile then the file-descriptor of that
+ * zipfile is returned, otherwise a NULL is returned and the ZZIP_DIR wraps
+ * a real directory DIR (if you have dirent on your system).
+ */
+int
+zzip_dirfd(ZZIP_DIR * dir)
+{
+ return dir->fd;
+}
+
+#define LENGTH(x) (sizeof(x) / sizeof(*x))
+static const char* comprlevel[] = {
+ "stored", "shrunk", "redu:1", "redu:2", "redu:3", "redu:4",
+ "impl:N", "toknze", "defl:N", "defl:B", "impl:B" };
+
+/** compr name.
+ * This function returns the static const string of the known compression methods,
+ * Unknown id values will return just "zipped" as the string code.
+ */
+zzip_char_t *
+zzip_compr_str(int compr)
+{
+ if (0 <= compr && (unsigned) compr < LENGTH(comprlevel))
+ {
+ return comprlevel[compr];
+ } else if (0 < compr && compr < 256)
+ {
+ return "zipped";
+ } else
+ {
+# ifdef S_ISDIR
+ if (S_ISDIR(compr)) return "directory";
+# endif
+# ifdef S_ISCHR
+ if (S_ISCHR(compr)) return "is/chr";
+# endif
+# ifdef S_ISBLK
+ if (S_ISBLK(compr)) return "is/blk";
+# endif
+# ifdef S_ISFIFO
+ if (S_ISFIFO(compr)) return "is/fifo";
+# endif
+# ifdef S_ISSOCK
+ if (S_ISSOCK(compr)) return "is/sock";
+# endif
+# ifdef S_ISLNK
+ if (S_ISLNK(compr)) return "is/lnk";
+# endif
+ return "special";
+ }
+}
+
+/** => zzip_file_real
+ * This function checks if the ZZIP_DIR-handle is wrapping
+ * a real directory or a zip-archive.
+ * Returns 1 for a stat'able directory, and 0 for a handle to zip-archive.
+ */
+int
+zzip_dir_real(ZZIP_DIR * dir)
+{
+ return dir->realdir != 0;
+}
+
+/** check real or zipped file.
+ * This function checks if the ZZIP_FILE-handle is wrapping
+ * a real file or a zip-contained file.
+ * Returns 1 for a stat'able file, and 0 for a file inside a zip-archive.
+ */
+int
+zzip_file_real(ZZIP_FILE * fp)
+{
+ return fp->dir == 0; /* ie. not dependent on a zip-arch-dir */
+}
+
+/** => zzip_file_real
+ * This function returns the posix DIR* handle (if one exists).
+ * Check before with => zzip_dir_real if the
+ * the ZZIP_DIR points to a real directory.
+ */
+void *
+zzip_realdir(ZZIP_DIR * dir)
+{
+ return dir->realdir;
+}
+
+/** => zzip_file_real
+ * This function returns the posix file descriptor (if one exists).
+ * Check before with => zzip_file_real if the
+ * the ZZIP_FILE points to a real file.
+ */
+int
+zzip_realfd(ZZIP_FILE * fp)
+{
+ return fp->fd;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/info.h b/Build/source/libs/zziplib/zziplib-src/zzip/info.h
new file mode 100644
index 00000000000..bfdf8718ade
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/info.h
@@ -0,0 +1,20 @@
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#ifdef ZZIP_USE_INTERNAL
+/* do not make these public, they are for internal use only */
+
+#define ZZIP_error(__dir) __dir->errcode
+#define ZZIP_seterror(__dir, __code) __dir->errcode = __code
+#define ZZIP_dirhandle(__fp) __fp->dir
+#define ZZIP_dirfd(__dir) __dir->fd
+#define ZZIP_dir_real(__dir) __dir->realdir != 0
+#define ZZIP_file_real(__fp) __fp->dir == 0
+#define ZZIP_realdir(__dir) __dir->realdir
+#define ZZIP_reafd(__fp) __fp->fd
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/lib.h b/Build/source/libs/zziplib/zziplib-src/zzip/lib.h
new file mode 100644
index 00000000000..b09a1302829
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/lib.h
@@ -0,0 +1,86 @@
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ * Tomi Ollila <Tomi.Ollila@iki.fi>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ *
+ * This is the private header containing definitions that are not
+ * use by a libzzip user application. Writing an extension lib that
+ * uses libzzip will still want to include this. The extension
+ * write should make way to have the ISO C9X integer types defined.
+ */
+#ifndef _ZZIP_LIB_H /* zzip.h */
+#define _ZZIP_LIB_H
+
+#include <zzip/zzip.h>
+#include <zzip/plugin.h>
+#include <zzip/stdint.h>
+#include <zzip/zzip32.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * this structure cannot be wildly enlarged... (see zzip-zip.c)
+ */
+struct zzip_dir_hdr
+{
+ uint32_t d_usize; /* uncompressed size */
+ uint32_t d_csize; /* compressed size */
+ uint32_t d_crc32; /* the adler32-checksum */
+ uint32_t d_off; /* offset of file in zipfile */
+ uint16_t d_reclen; /* next dir_hdr structure offset */
+ uint16_t d_namlen; /* explicit namelen of d_name */
+ uint8_t d_compr; /* the compression type, 0 = store, 8 = inflate */
+ char d_name[1]; /* the actual name of the entry, may contain DIRSEPs */
+};
+#define _ZZIP_DIRENT_HAVE_D_NAMLEN
+#define _ZZIP_DIRENT_HAVE_D_OFF
+#define _ZZIP_DIRENT_HAVE_D_RECLEN
+
+/*
+ * you shall not use this struct anywhere else than in zziplib sources.
+ */
+struct zzip_dir
+{
+ int fd;
+ int errcode; /* zzip_error_t */
+ long refcount;
+ struct { /* reduce a lot of alloc/deallocations by caching these: */
+ int * volatile locked;
+ struct zzip_file * volatile fp;
+ char * volatile buf32k;
+ } cache;
+ struct zzip_dir_hdr * hdr0; /* zfi; */
+ struct zzip_dir_hdr * hdr; /* zdp; directory pointer, for dirent stuff */
+ struct zzip_file * currentfp; /* last fp used... */
+ struct zzip_dirent dirent;
+ void* realdir; /* e.g. DIR* from posix dirent.h */
+ char* realname;
+ zzip_strings_t* fileext; /* list of fileext to test for */
+ zzip_plugin_io_t io; /* vtable for io routines */
+};
+
+#define ZZIP_32K 32768
+
+/* try to open a zip-basename with default_fileext */
+int __zzip_try_open (zzip_char_t* filename, int filemode,
+ zzip_strings_t* ext, zzip_plugin_io_t io);
+
+ZZIP_DIR *
+zzip_dir_fdopen(int fd, zzip_error_t * errcode_p);
+
+ZZIP_DIR*
+zzip_dir_fdopen_ext_io(int fd, zzip_error_t * errorcode_p,
+ zzip_strings_t* ext, const zzip_plugin_io_t io);
+
+ZZIP_DIR* /*deprecated*/
+zzip_dir_alloc_ext_io (zzip_strings_t* ext, const zzip_plugin_io_t io);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _ZZIP_H */
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.c b/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.c
new file mode 100644
index 00000000000..6be52cb5a16
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.c
@@ -0,0 +1,605 @@
+
+/*
+ * NOTE: this is part of libzzipmmapped (i.e. it is not libzzip).
+ * ==================
+ *
+ * The mem_disk cache will parse the central information of a zip archive
+ * and store it internally. One the one hand it allows to find files
+ * faster - no disk access is required and endian conversion is not
+ * needed. If zzip is compiled with zip extensions then it is about
+ * the only way to build maintainable code around the zip format.
+ *
+ * Note that 64bit support is almost entirely living in extension
+ * blocks as well as different character encodings and file access
+ * control bits that are mostly platform specific.
+ *
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+#define _ZZIP_DISK_FILE_STRUCT 1
+
+#include <zzip/types.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+
+#include <zlib.h>
+#include <zzip/format.h>
+#include <zzip/fetch.h>
+#include <zzip/mmapped.h>
+#include <zzip/memdisk.h>
+#include <zzip/__fnmatch.h>
+#include <zzip/__errno.h>
+
+#define ___ {
+#define ____ }
+
+#define DEBUG 1
+#ifdef DEBUG
+#define debug1(msg) do { fprintf(stderr, "DEBUG: %s : " msg "\n", __func__); } while(0)
+#define debug2(msg, arg1) do { fprintf(stderr, "DEBUG: %s : " msg "\n", __func__, arg1); } while(0)
+#define debug3(msg, arg1, arg2) do { fprintf(stderr, "DEBUG: %s : " msg "\n", __func__, arg1, arg2); } while(0)
+#define debug4(msg, arg1, arg2, arg3) do { fprintf(stderr, "DEBUG: %s : " msg "\n", __func__, arg1, arg2, arg3); } while(0)
+#else
+#define debug1(msg)
+#define debug2(msg, arg1)
+#define debug3(msg, arg1, arg2)
+#define debug4(msg, arg1, arg2, arg3)
+#endif
+
+#define ZZIP_EXTRA_zip64 0x0001
+typedef struct _zzip_extra_zip64
+{ /* ZIP64 extended information extra field */
+ zzip_byte_t z_datatype[2]; /* Tag for this "extra" block type */
+ zzip_byte_t z_datasize[2]; /* Size of this "extra" block */
+ zzip_byte_t z_usize[8]; /* Original uncompressed file size */
+ zzip_byte_t z_csize[8]; /* Size of compressed data */
+ zzip_byte_t z_offset[8]; /* Offset of local header record */
+ zzip_byte_t z_diskstart[4]; /* Number of the disk for file start */
+} zzip_extra_zip64;
+
+/*forward*/
+
+static zzip__new__ ZZIP_MEM_ENTRY *
+zzip_mem_entry_new(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry);
+static void
+zzip_mem_entry_free(ZZIP_MEM_ENTRY * _zzip_restrict item);
+
+/** => zzip_mem_disk_open
+ * This function is internally used to prepare opening a disk.
+ */
+zzip__new__ ZZIP_MEM_DISK *
+zzip_mem_disk_new(void)
+{
+ return calloc(1, sizeof(ZZIP_MEM_DISK));
+}
+
+/** create new diskdir handle.
+ * This function wraps underlying zzip_disk_open.
+ */
+zzip__new__ ZZIP_MEM_DISK *
+zzip_mem_disk_open(char *filename)
+{
+ ZZIP_DISK *disk = zzip_disk_open(filename);
+ if (! disk)
+ {
+ debug2("can not open disk file %s", filename);
+ return 0;
+ }
+ ___ ZZIP_MEM_DISK *dir = zzip_mem_disk_new();
+ if (zzip_mem_disk_load(dir, disk) == -1)
+ {
+ debug2("unable to load disk %s", filename);
+ }
+ return dir;
+ ____;
+}
+
+/** => zzip_mem_disk_open
+ * This function wraps the underlying zzip_disk_open.
+ */
+zzip__new__ ZZIP_MEM_DISK *
+zzip_mem_disk_fdopen(int fd)
+{
+ ZZIP_DISK *disk = zzip_disk_mmap(fd);
+ if (! disk)
+ {
+ debug2("can not open disk fd %i", fd);
+ return 0;
+ }
+ ___ ZZIP_MEM_DISK *dir = zzip_mem_disk_new();
+ if (zzip_mem_disk_load(dir, disk) == -1)
+ {
+ debug2("unable to load disk fd %i", fd);
+ }
+ return dir;
+ ____;
+}
+
+/** create new diskdir handle.
+ * This function wraps underlying zzip_disk_buffer.
+ */
+zzip__new__ ZZIP_MEM_DISK *
+zzip_mem_disk_buffer(char *buffer, size_t buflen)
+{
+ ZZIP_DISK *disk = zzip_disk_buffer(buffer, buflen);
+ if (! disk)
+ {
+ debug2("can not open disk buf %p", buffer);
+ return 0;
+ }
+ ___ ZZIP_MEM_DISK *dir = zzip_mem_disk_new();
+ if (zzip_mem_disk_load(dir, disk) == -1)
+ {
+ debug2("unable to load disk buf %p", buffer);
+ }
+ return dir;
+ ____;
+}
+
+/** parse central dir.
+ * creates an internal copy of each entry converted to the local platform.
+ * returns: number of entries, or -1 on error (setting errno)
+ */
+long
+zzip_mem_disk_load(ZZIP_MEM_DISK * dir, ZZIP_DISK * disk)
+{
+ if (! dir || ! disk)
+ { errno=EINVAL; return -1; }
+ if (dir->list)
+ zzip_mem_disk_unload(dir);
+ ___ long count = 0;
+ ___ struct zzip_disk_entry *entry = zzip_disk_findfirst(disk);
+ if (!entry) goto error;
+ for (; entry; entry = zzip_disk_findnext(disk, entry))
+ {
+ ZZIP_MEM_ENTRY *item = zzip_mem_entry_new(disk, entry);
+ if (! item)
+ {
+ debug1("unable to load entry");
+ goto error;
+ }
+ if (dir->last)
+ {
+ dir->last->zz_next = item; /* chain last */
+ } else
+ {
+ dir->list = item;
+ }
+ dir->last = item; /* to earlier */
+ count++;
+ }
+ ____;
+ dir->disk = disk;
+ return count;
+ ____;
+ error:
+ zzip_mem_disk_unload(dir);
+ return -1;
+}
+
+/** convert a zip disk entry to internal format.
+ * creates a new item parsing the information out of the various places
+ * in the zip archive. This is a good place to extend functionality if
+ * you have a project with extra requirements as you can push more bits
+ * right into the diskdir_entry for later usage in higher layers.
+ * returns: new item, or null on error (setting errno = ENOMEM|EBADMSG)
+ */
+zzip__new__ ZZIP_MEM_ENTRY *
+zzip_mem_entry_new(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry)
+{
+ if (! disk || ! entry)
+ { errno=EINVAL; return 0; }
+ ___ ZZIP_MEM_ENTRY *item = calloc(1, sizeof(*item));
+ if (! item)
+ return 0; /* errno=ENOMEM; */
+ ___ struct zzip_file_header *header =
+ zzip_disk_entry_to_file_header(disk, entry);
+ if (! header)
+ {
+ debug1("no header in entry");
+ free (item);
+ return 0; /* errno=EBADMSG; */
+ }
+ /* there is a number of duplicated information in the file header
+ * or the disk entry block. Theoretically some part may be missing
+ * that exists in the other, ... but we will prefer the disk entry.
+ */
+ item->zz_comment = zzip_disk_entry_strdup_comment(disk, entry);
+ item->zz_name = zzip_disk_entry_strdup_name(disk, entry);
+ item->zz_data = zzip_file_header_to_data(header);
+ item->zz_flags = zzip_disk_entry_get_flags(entry);
+ item->zz_compr = zzip_disk_entry_get_compr(entry);
+ item->zz_mktime = zzip_disk_entry_get_mktime(entry);
+ item->zz_crc32 = zzip_disk_entry_get_crc32(entry);
+ item->zz_csize = zzip_disk_entry_get_csize(entry);
+ item->zz_usize = zzip_disk_entry_get_usize(entry);
+ item->zz_diskstart = zzip_disk_entry_get_diskstart(entry);
+ item->zz_filetype = zzip_disk_entry_get_filetype(entry);
+
+ /*
+ * If zz_data+zz_csize exceeds the size of the file, bail out
+ */
+ if ((item->zz_data + item->zz_csize) < disk->buffer ||
+ (item->zz_data + item->zz_csize) >= disk->endbuf)
+ {
+ goto error;
+ }
+ /*
+ * If the file is uncompressed, zz_csize and zz_usize should be the same
+ * If they are not, we cannot guarantee that either is correct, so ...
+ */
+ if (item->zz_compr == ZZIP_IS_STORED && item->zz_csize != item->zz_usize)
+ {
+ goto error;
+ }
+ /* zz_comment and zz_name are empty strings if not present on disk */
+ if (! item->zz_comment || ! item->zz_name)
+ {
+ goto error; /* errno=ENOMEM */
+ }
+
+ { /* copy the extra blocks to memory as well (maximum 64K each) */
+ zzip_size_t /* */ ext1_len = zzip_disk_entry_get_extras(entry);
+ zzip_byte_t *_zzip_restrict ext1_ptr = zzip_disk_entry_to_extras(entry);
+ zzip_size_t /* */ ext2_len = zzip_file_header_get_extras(header);
+ zzip_byte_t *_zzip_restrict ext2_ptr = zzip_file_header_to_extras(header);
+
+ if (ext1_len > 0 && ext1_len <= 65535)
+ {
+ if (ext1_ptr + ext1_len >= disk->endbuf)
+ {
+ errno = EBADMSG;
+ goto error; /* zzip_mem_entry_free(item); return 0; */
+ } else {
+ void *mem = malloc(ext1_len);
+ if (! mem) goto error; /* errno = ENOMEM */
+ item->zz_ext[1] = mem;
+ item->zz_extlen[1] = ext1_len;
+ memcpy(mem, ext1_ptr, ext1_len);
+ }
+ }
+ if (ext2_len > 0 && ext2_len <= 65535)
+ {
+ if (ext2_ptr + ext2_len >= disk->endbuf)
+ {
+ errno = EBADMSG;
+ goto error; /* zzip_mem_entry_free(item); return 0; */
+ } else {
+ void *mem = malloc(ext2_len);
+ if (! mem) goto error; /* errno = ENOMEM */
+ item->zz_ext[2] = mem;
+ item->zz_extlen[2] = ext2_len;
+ memcpy(mem, ext2_ptr, ext2_len);
+ }
+ }
+ }
+ {
+ /* override sizes/offsets with zip64 values for largefile support */
+ zzip_extra_zip64 *block = (zzip_extra_zip64 *)
+ zzip_mem_entry_find_extra_block(item, ZZIP_EXTRA_zip64, sizeof(zzip_extra_zip64));
+ if (block)
+ {
+ item->zz_usize = ZZIP_GET64(block->z_usize);
+ item->zz_csize = ZZIP_GET64(block->z_csize);
+ item->zz_offset = ZZIP_GET64(block->z_offset);
+ item->zz_diskstart = ZZIP_GET32(block->z_diskstart);
+ }
+ }
+ /* NOTE:
+ * All information from the central directory entry is now in memory.
+ * Effectivly that allows us to modify it and write it back to disk.
+ */
+ return item;
+ ____;
+error:
+ zzip_mem_entry_free(item);
+ return 0;
+ ____;
+}
+
+/** => zzip_mem_entry_find_extra_block.
+ *
+ * Note that for this function only the block_header is asserted
+ * to be completely in memory, so the returned pointer should be checked.
+ */
+ZZIP_EXTRA_BLOCK *
+zzip_mem_entry_extra_block(ZZIP_MEM_ENTRY * entry, short datatype)
+{
+ return zzip_mem_entry_find_extra_block(entry, datatype, 16);
+}
+
+/** get extra block.
+ * This function finds an extra block for the given datatype code.
+ * The returned EXTRA_BLOCK is still in disk-encoding but
+ * already a pointer into an allocated heap space block.
+ *
+ * The second argument of this function ensures that the
+ * complete datasize is in memory.
+ */
+ZZIP_EXTRA_BLOCK *
+zzip_mem_entry_find_extra_block(ZZIP_MEM_ENTRY * entry, short datatype, zzip_size_t blocksize)
+{
+ int i = 2;
+ while (1)
+ {
+ char* ext = (char*)( entry->zz_ext[i] );
+ char* ext_end = ext + entry->zz_extlen[i];
+ if (ext)
+ {
+ /*
+ * Make sure that
+ * 1) the extra block header
+ * AND
+ * 2) the block we're looking for
+ * fit into the extra block!
+ */
+ while (ext + zzip_extra_block_headerlength + blocksize <= ext_end)
+ {
+ if (datatype == zzip_extra_block_get_datatype(ext))
+ {
+ if (blocksize <= zzip_extra_block_get_datasize(ext) + zzip_extra_block_headerlength)
+ {
+ return ((ZZIP_EXTRA_BLOCK*) ext);
+ }
+ }
+ /* skip to start of next extra_block */
+ ___ zzip_size_t datasize = zzip_extra_block_get_datasize(ext);
+ ext += zzip_extra_block_headerlength;
+ ext += datasize;
+ ____;
+ }
+ }
+ if (! i)
+ return 0;
+ i--;
+ }
+}
+
+/** => zzip_mem_disk_close
+ * This function ends usage of a file entry in a disk.
+ */
+void
+zzip_mem_entry_free(ZZIP_MEM_ENTRY * _zzip_restrict item)
+{
+ if (item)
+ {
+ /* *INDENT-OFF* */
+ if (item->zz_ext[0]) free (item->zz_ext[0]);
+ if (item->zz_ext[1]) free (item->zz_ext[1]);
+ if (item->zz_ext[2]) free (item->zz_ext[2]);
+ if (item->zz_comment) free (item->zz_comment);
+ if (item->zz_name) free (item->zz_name);
+ free (item);
+ /* *INDENT-ON* */
+ }
+}
+
+/** => zzip_mem_disk_close
+ * This function will trigger an underlying disk_close
+ */
+void
+zzip_mem_disk_unload(ZZIP_MEM_DISK * dir)
+{
+ ZZIP_MEM_ENTRY *item = dir->list;
+ while (item)
+ {
+ ZZIP_MEM_ENTRY *next = item->zz_next;
+ zzip_mem_entry_free(item);
+ item = next;
+ }
+ dir->list = dir->last = 0;
+ zzip_disk_close(dir->disk);
+ dir->disk = 0;
+}
+
+/** end usage.
+ * This function closes the dir and disk handles.
+ */
+void
+zzip_mem_disk_close(ZZIP_MEM_DISK * _zzip_restrict dir)
+{
+ if (dir)
+ {
+ zzip_mem_disk_unload(dir);
+ zzip_disk_close(dir->disk);
+ free(dir);
+ }
+}
+
+#if 0
+static void
+foo(short zz_datatype)
+{
+ /* Header IDs of 0 through 31 are reserved for use by PKWARE.(APPNOTE.TXT) */
+ switch (zz_datatype)
+ {
+ /* *INDENT-OFF* */
+ case 0x0001: /* ZIP64 extended information extra field */
+ case 0x0007: /* AV Info */
+ case 0x0008: /* Reserved for future Unicode file name data (PFS) */
+ case 0x0009: /* OS/2 */
+ case 0x000a: /* NTFS */
+ case 0x000c: /* OpenVMS */
+ case 0x000d: /* Unix */
+ case 0x000e: /* Reserved for file stream and fork descriptors */
+ case 0x000f: /* Patch Descriptor */
+ case 0x0014: /* PKCS#7 Store for X.509 Certificates */
+ case 0x0015: /* X.509 Certificate ID and Signature for file */
+ case 0x0016: /* X.509 Certificate ID for Central Directory */
+ case 0x0017: /* Strong Encryption Header */
+ case 0x0018: /* Record Management Controls */
+ case 0x0019: /* PKCS#7 Encryption Recipient Certificate List */
+ /* ......................................................... */
+ case 0x0065: /* IBM S/390, AS/400 attributes - uncompressed */
+ case 0x0066: /* Reserved for IBM S/390, AS/400 attr - compressed */
+ case 0x07c8: /* Macintosh */
+ case 0x2605: /* ZipIt Macintosh */
+ case 0x2705: /* ZipIt Macintosh 1.3.5+ */
+ case 0x2805: /* ZipIt Macintosh 1.3.5+ */
+ case 0x334d: /* Info-ZIP Macintosh */
+ case 0x4341: /* Acorn/SparkFS */
+ case 0x4453: /* Windows NT security descriptor (binary ACL) */
+ case 0x4704: /* VM/CMS */
+ case 0x470f: /* MVS */
+ case 0x4b46: /* FWKCS MD5 (see below) */
+ case 0x4c41: /* OS/2 access control list (text ACL) */
+ case 0x4d49: /* Info-ZIP OpenVMS */
+ case 0x4f4c: /* Xceed original location extra field */
+ case 0x5356: /* AOS/VS (ACL) */
+ case 0x5455: /* extended timestamp */
+ case 0x554e: /* Xceed unicode extra field */
+ case 0x5855: /* Info-ZIP Unix (original, also OS/2, NT, etc) */
+ case 0x6542: /* BeOS/BeBox */
+ case 0x756e: /* ASi Unix */
+ case 0x7855: /* Info-ZIP Unix (new) */
+ case 0xfd4a: /* SMS/QDOS */
+ /* *INDENT-ON* */
+ }
+}
+#endif
+
+/** search entries.
+ * This function walks through the zip directory looking for a file.
+ */
+ZZIP_MEM_ENTRY *
+zzip_mem_disk_findfile(ZZIP_MEM_DISK * dir,
+ char *filename, ZZIP_MEM_ENTRY * after,
+ zzip_strcmp_fn_t compare)
+{
+ ZZIP_MEM_ENTRY *entry = (! after ? dir->list : after->zz_next);
+ if (! compare)
+ compare = (zzip_strcmp_fn_t) (strcmp);
+ for (; entry; entry = entry->zz_next)
+ {
+ if (! compare(filename, entry->zz_name))
+ {
+ return entry;
+ }
+ }
+ return 0;
+}
+
+/* => zzip_mem_disk_findfile
+ * This function uses an fnmatch-like comparator to find files.
+ */
+ZZIP_MEM_ENTRY *
+zzip_mem_disk_findmatch(ZZIP_MEM_DISK * dir,
+ char *filespec, ZZIP_MEM_ENTRY * after,
+ zzip_fnmatch_fn_t compare, int flags)
+{
+ ZZIP_MEM_ENTRY *entry = (! after ? dir->list : after->zz_next);
+ if (! compare)
+ compare = (zzip_fnmatch_fn_t) _zzip_fnmatch;
+ for (; entry; entry = entry->zz_next)
+ {
+ if (! compare(filespec, entry->zz_name, flags))
+ {
+ return entry;
+ }
+ }
+ return 0;
+}
+
+/** start usage.
+ * This function opens a referenced file entry from a openend disk.
+ */
+zzip__new__ ZZIP_MEM_DISK_FILE *
+zzip_mem_entry_fopen(ZZIP_MEM_DISK * dir, ZZIP_MEM_ENTRY * entry)
+{
+ /* keep this in sync with zzip_disk_entry_fopen */
+ ZZIP_DISK_FILE *file = malloc(sizeof(ZZIP_MEM_DISK_FILE));
+ if (! file)
+ return file;
+ file->buffer = dir->disk->buffer;
+ file->endbuf = dir->disk->endbuf;
+ file->avail = zzip_mem_entry_usize(entry);
+
+ if (! file->avail || zzip_mem_entry_data_stored(entry))
+ { file->stored = zzip_mem_entry_to_data (entry); return file; }
+
+ file->stored = 0;
+ file->zlib.opaque = 0;
+ file->zlib.zalloc = Z_NULL;
+ file->zlib.zfree = Z_NULL;
+ file->zlib.avail_in = zzip_mem_entry_csize(entry);
+ file->zlib.next_in = zzip_mem_entry_to_data(entry);
+
+ debug2("compressed size %i", (int) file->zlib.avail_in);
+ if (file->zlib.next_in + file->zlib.avail_in >= file->endbuf)
+ goto error;
+ if (file->zlib.next_in < file->buffer)
+ goto error;
+
+ if (! zzip_mem_entry_data_deflated(entry) ||
+ inflateInit2(&file->zlib, -MAX_WBITS) != Z_OK)
+ { free (file); return 0; }
+
+ return file;
+error:
+ errno = EBADMSG;
+ return NULL;
+}
+
+/** => zzip_mem_disk_open
+ * This function opens a file by name from an openend disk.
+ */
+zzip__new__ ZZIP_MEM_DISK_FILE *
+zzip_mem_disk_fopen(ZZIP_MEM_DISK * dir, char *filename)
+{
+ ZZIP_MEM_ENTRY *entry = zzip_mem_disk_findfile(dir, filename, 0, 0);
+ if (! entry)
+ return 0;
+ else
+ return zzip_mem_entry_fopen(dir, entry);
+}
+
+/** get data
+ * This function mimics the fread(2) behaviour.
+ */
+_zzip_size_t
+zzip_mem_disk_fread(void *ptr, _zzip_size_t size, _zzip_size_t nmemb,
+ ZZIP_MEM_DISK_FILE * file)
+{
+ return zzip_disk_fread(ptr, size, nmemb, file);
+}
+
+/** close disk.
+ * This function mimics the fclose(2) behaviour.
+ */
+int
+zzip_mem_disk_fclose(ZZIP_MEM_DISK_FILE * file)
+{
+ return zzip_disk_fclose(file);
+}
+
+/** check disk.
+ * This function mimics the feof(2) behaviour.
+ */
+int
+zzip_mem_disk_feof(ZZIP_MEM_DISK_FILE * file)
+{
+ return zzip_disk_feof(file);
+}
+
+/** helper.
+ * This function converts a zip dostime of an entry to unix time_t
+ */
+long
+zzip_disk_entry_get_mktime(ZZIP_DISK_ENTRY * entry)
+{
+ uint16_t dostime = ZZIP_GET16(entry->z_dostime.time);
+ uint16_t dosdate = ZZIP_GET16(entry->z_dostime.date);
+ struct tm date;
+ date.tm_sec = (dostime) & 0x1F; /* bits 0..4 */
+ date.tm_min = (dostime >> 5) & 0x3F; /* bits 5..10 */
+ date.tm_hour = (dostime >> 11); /* bits 11..15 */
+ date.tm_mday = (dosdate) & 0x1F; /* bits 16..20 */
+ date.tm_mon = (dosdate >> 5) & 0xF; /* bits 21..24 */
+ date.tm_year = (dosdate >> 9) + 80; /* bits 25..31 */
+ return mktime(&date); /* well, unix has that function... */
+}
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.h b/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.h
new file mode 100644
index 00000000000..5cf0eced460
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.h
@@ -0,0 +1,179 @@
+#ifndef __ZZIP_MEMDISK_H
+#define __ZZIP_MEMDISK_H
+
+/*
+ * NOTE: this is part of libzzipmmapped (i.e. it is not libzzip).
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#include <zzip/types.h>
+#include <zzip/mmapped.h>
+#include <zzip/__hints.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _zzip_mem_disk ZZIP_MEM_DISK;
+typedef struct _zzip_mem_entry ZZIP_MEM_ENTRY;
+
+struct _zzip_mem_disk {
+ ZZIP_DISK* disk;
+ ZZIP_MEM_ENTRY* list;
+ ZZIP_MEM_ENTRY* last;
+};
+
+#ifndef zzip_mem_disk_extern
+#define zzip_mem_disk_extern
+#endif
+
+zzip_mem_disk_extern zzip__new__ ZZIP_MEM_DISK*
+zzip_mem_disk_new (void);
+zzip_mem_disk_extern zzip__new__ ZZIP_MEM_DISK*
+zzip_mem_disk_open (char* filename);
+zzip_mem_disk_extern zzip__new__ ZZIP_MEM_DISK*
+zzip_mem_disk_fdopen (int fd);
+zzip_mem_disk_extern zzip__new__ ZZIP_MEM_DISK *
+zzip_mem_disk_buffer(char *buffer, size_t buflen);
+zzip_mem_disk_extern void
+zzip_mem_disk_close (ZZIP_MEM_DISK* _zzip_restrict dir);
+
+zzip_mem_disk_extern long
+zzip_mem_disk_load (ZZIP_MEM_DISK* dir, ZZIP_DISK* disk);
+zzip_mem_disk_extern void
+zzip_mem_disk_unload (ZZIP_MEM_DISK* dir);
+ZZIP_EXTRA_BLOCK*
+zzip_mem_entry_extra_block (ZZIP_MEM_ENTRY* entry, short datatype) ZZIP_GNUC_DEPRECATED;
+ZZIP_EXTRA_BLOCK*
+zzip_mem_entry_find_extra_block (ZZIP_MEM_ENTRY* entry, short datatype, zzip_size_t blocksize);
+
+#ifdef USE_INLINE
+_zzip_inline ZZIP_DISK* zzip_disk (ZZIP_MEM_DISK* dir) { return dir->disk; }
+#else
+#define zzip_disk(_X_) ((_X_)->disk)
+#endif
+
+
+/* these functions are much faster than the orgiinal zzip_disk_ functions */
+
+/* zzip_mem_entry <is similar to> zzip_disk_entry */
+struct _zzip_mem_entry {
+ struct _zzip_mem_entry* zz_next;
+ char* zz_name; /* zero-terminated (from "filename") */
+ zzip_byte_t* zz_data; /* compressed content start (mmap addr) */
+ int zz_flags; /* (from "z_flags") */
+ int zz_compr; /* (from "z_compr") */
+ long zz_mktime; /* (from "z_dostime") */
+ long zz_crc32; /* (from "z_crc32") */
+ zzip_off_t zz_csize; /* (from "z_csize") overridden by zip64 */
+ zzip_off_t zz_usize; /* (from "z_usize") overridden by zip64 */
+ zzip_off_t zz_offset; /* (from "z_offset") overridden by zip64 */
+ int zz_diskstart; /* (from "z_diskstart") rridden by zip64 */
+ int zz_filetype; /* (from "z_filetype") */
+ char* zz_comment; /* zero-terminated (from "comment") */
+ ZZIP_EXTRA_BLOCK* zz_ext[3]; /* terminated by null in z_datatype */
+ zzip_size_t zz_extlen[3]; /* the extra blocks are NOT converted */
+};
+
+#define _zzip_mem_disk_findfirst(_d_) (!(_d_) ? 0 : ((_d_)->list))
+#define _zzip_mem_disk_findnext(_d_,_e_) (!(_e_) ? (!(_d_) ? 0 : ((_d_)->list)) : ((_e_)->zz_next))
+#define _zzip_mem_entry_findnext(_e_) (!(_e_) ? 0 : ((_e_)->zz_next))
+
+#ifndef USE_INLINE
+#define zzip_mem_disk_findfirst _zzip_mem_disk_findfirst
+#define zzip_mem_disk_findnext _zzip_mem_disk_findnext
+#define zzip_mem_entry_findnext _zzip_mem_entry_findnext
+#else
+
+_zzip_inline ZZIP_MEM_ENTRY*
+zzip_mem_disk_findfirst(ZZIP_MEM_DISK* dir) {
+ if (! dir) return 0;
+ return _zzip_mem_disk_findfirst(dir); }
+_zzip_inline ZZIP_MEM_ENTRY*
+zzip_mem_disk_findnext(ZZIP_MEM_DISK* dir, ZZIP_MEM_ENTRY* entry) {
+ if (! dir) return 0;
+ return _zzip_mem_disk_findnext(dir, entry); }
+_zzip_inline ZZIP_MEM_ENTRY*
+zzip_mem_entry_findnext(ZZIP_MEM_ENTRY* entry) {
+ if (! entry) return 0;
+ return _zzip_mem_entry_findnext(entry); }
+#endif
+
+#define _zzip_mem_entry_to_name(_e_) (!(_e_) ? 0 : ((_e_)->zz_name))
+#define _zzip_mem_entry_to_comment(_e_) (!(_e_) ? 0 : ((_e_)->zz_comment))
+#define _zzip_mem_entry_strdup_name(_e_) (!(_e_) ? 0 : (strdup((_e_)->zz_name)))
+#define _zzip_mem_entry_to_data(_e_) (!(_e_) ? 0 : ((_e_)->zz_data))
+
+#ifndef USE_INLINE
+#define zzip_mem_entry_to_name _zzip_mem_entry_to_name
+#define zzip_mem_entry_to_comment _zzip_mem_entry_to_comment
+#define zzip_mem_entry_strdup_name _zzip_mem_entry_strdup_name
+#define zzip_mem_entry_to_data _zzip_mem_entry_to_data
+#else
+_zzip_inline char*
+zzip_mem_entry_to_name(ZZIP_MEM_ENTRY* entry) {
+ if (! entry) return 0;
+ return _zzip_mem_entry_to_name(entry); }
+_zzip_inline char*
+zzip_mem_entry_to_comment(ZZIP_MEM_ENTRY* entry) {
+ if (! entry) return 0;
+ return _zzip_mem_entry_to_comment(entry); }
+zzip__new__
+_zzip_inline char*
+zzip_mem_entry_strdup_name(ZZIP_MEM_ENTRY* entry) {
+ if (! entry) return 0;
+ return _zzip_mem_entry_strdup_name(entry); }
+_zzip_inline zzip_byte_t*
+zzip_mem_entry_to_data(ZZIP_MEM_ENTRY* entry) {
+ if (! entry) return 0;
+ return _zzip_mem_entry_to_data(entry); }
+#endif
+
+ZZIP_MEM_ENTRY*
+zzip_mem_disk_findfile(ZZIP_MEM_DISK* dir,
+ char* filename, ZZIP_MEM_ENTRY* after,
+ zzip_strcmp_fn_t compare);
+
+ZZIP_MEM_ENTRY*
+zzip_mem_disk_findmatch(ZZIP_MEM_DISK* dir,
+ char* filespec, ZZIP_MEM_ENTRY* after,
+ zzip_fnmatch_fn_t compare, int flags);
+
+/* named access -------------------------------------------------------- */
+#define zzip_mem_entry_usize(_e_) ((_e_)->zz_usize)
+#define zzip_mem_entry_csize(_e_) ((_e_)->zz_csize)
+#define zzip_mem_entry_data_encrypted(_e_) ZZIP_IS_ENCRYPTED((_e_)->zz_flags)
+#define zzip_mem_entry_data_streamed(_e_) ZZIP_IS_STREAMED((_e_)->zz_flags)
+#define zzip_mem_entry_data_comprlevel(_e_) ((_e_)->zz_compr)
+#define zzip_mem_entry_data_stored(_e_) ((_e_)->zz_compr == ZZIP_IS_STORED)
+#define zzip_mem_entry_data_deflated(_e_) ((_e_)->zz_compr == ZZIP_IS_DEFLATED)
+
+/* zzip_mem_disk_file -------------------------------------------------- */
+
+/* since only the header data is being cached, all the real data
+ * operations are actually the same as in mmapped.h - just fopen makes
+ * access to the header data in memory instead of the zip archive.
+ */
+
+typedef ZZIP_DISK_FILE ZZIP_MEM_DISK_FILE;
+
+zzip__new__ ZZIP_MEM_DISK_FILE*
+zzip_mem_entry_fopen (ZZIP_MEM_DISK* dir, ZZIP_MEM_ENTRY* entry);
+zzip__new__ ZZIP_MEM_DISK_FILE*
+zzip_mem_disk_fopen (ZZIP_MEM_DISK* dir, char* filename);
+_zzip_size_t
+zzip_mem_disk_fread (void* ptr, _zzip_size_t size, _zzip_size_t nmemb,
+ ZZIP_MEM_DISK_FILE* file);
+int
+zzip_mem_disk_fclose (ZZIP_MEM_DISK_FILE* file);
+int
+zzip_mem_disk_feof (ZZIP_MEM_DISK_FILE* file);
+
+/* convert dostime of entry to unix time_t */
+long zzip_disk_entry_get_mktime(ZZIP_DISK_ENTRY* entry);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.c b/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.c
new file mode 100644
index 00000000000..8af18f43070
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.c
@@ -0,0 +1,768 @@
+
+/*
+ * NOTE: this is part of libzzipmmapped (i.e. it is not libzzip).
+ * ==================
+ *
+ * These routines are fully independent from the traditional zzip
+ * implementation. They assume a readonly mmapped sharedmem block
+ * representing a complete zip file. The functions show how to
+ * parse the structure, find files and return a decoded bytestream.
+ *
+ * These routines are a bit simple and really here for documenting
+ * the way to access a zip file. The complexity of zip access comes
+ * from staggered reading of bytes and reposition of a filepointer in
+ * a big archive with lots of files and long compressed datastreams.
+ * Plus varaints of drop-in stdio replacements, obfuscation routines,
+ * auto fileextensions, drop-in dirent replacements, and so on...
+ *
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c)Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#define _ZZIP_DISK_FILE_STRUCT 1
+
+#ifdef __linux__
+#define _GNU_SOURCE _glibc_developers_are_idiots_to_call_strndup_gnu_specific_
+#endif
+
+#include <zzip/mmapped.h>
+#include <zzip/format.h>
+#include <zzip/fetch.h>
+#include <zzip/__debug.h>
+#include <zzip/__mmap.h>
+#include <zzip/__string.h>
+#include <zzip/__fnmatch.h>
+#include <zzip/__errno.h>
+
+#include <stdlib.h>
+#include <sys/stat.h>
+
+#if defined ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#elif defined ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+#if defined ZZIP_HAVE_STRING_H
+#include <string.h>
+#elif defined ZZIP_HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+
+#if __STDC_VERSION__+0 > 199900L
+#define ___
+#define ____
+#else
+#define ___ {
+#define ____ }
+#endif
+
+/** => zzip_disk_mmap
+ * This function does primary initialization of a disk-buffer struct.
+ *
+ * This function always returns 0 as success.
+ */
+int
+zzip_disk_init(ZZIP_DISK * disk, void *buffer, zzip_size_t buflen)
+{
+ disk->buffer = (zzip_byte_t *) buffer;
+ disk->endbuf = (zzip_byte_t *) buffer + buflen;
+ disk->reserved = 0;
+ disk->flags = 0;
+ disk->mapped = 0;
+ /* do not touch disk->user */
+ /* do not touch disk->code */
+ return 0;
+}
+
+/** => zzip_disk_mmap
+ * This function allocates a new disk-buffer with => malloc(3)
+ *
+ * This function may return null on errors (errno).
+ */
+zzip__new__ ZZIP_DISK *
+zzip_disk_new(void)
+{
+ ZZIP_DISK *disk = malloc(sizeof(ZZIP_DISK));
+ if (! disk)
+ return disk; /* ENOMEM */
+ zzip_disk_init(disk, 0, 0);
+ return disk;
+}
+
+/** turn a filehandle into a mmapped zip disk archive handle
+ *
+ * This function uses the given file-descriptor to detect the length of the
+ * file and calls the system => mmap(2) to put it in main memory. If it is
+ * successful then a newly allocated ZZIP_DISK* is returned with
+ * disk->buffer pointing to the mapview of the zipdisk content.
+ *
+ * This function may return null on errors (errno).
+ */
+zzip__new__ ZZIP_DISK *
+zzip_disk_mmap(int fd)
+{
+ struct stat st;
+ if (fstat(fd, &st) || ! st.st_size)
+ return 0; /* EACCESS */
+ ___ ZZIP_DISK *disk = zzip_disk_new();
+ if (! disk)
+ return 0; /* ENOMEM */
+ disk->buffer = _zzip_mmap(disk->mapped, fd, 0, st.st_size);
+ if (disk->buffer == MAP_FAILED)
+ {
+ free (disk);
+ return 0; /* EFAULT */
+ }
+ disk->endbuf = disk->buffer + st.st_size;
+ return disk;
+ ____;
+}
+
+/** => zzip_disk_mmap
+ * This function is the inverse of => zzip_disk_mmap and using the system
+ * munmap(2) on the buffer area and => free(3) on the ZZIP_DISK structure.
+ */
+int
+zzip_disk_munmap(ZZIP_DISK * disk)
+{
+ if (! disk)
+ return 0;
+ _zzip_munmap(disk->mapped, disk->buffer, disk->endbuf - disk->buffer);
+ free(disk);
+ return 0;
+}
+
+/** => zzip_disk_mmap
+ *
+ * This function opens the given archive by name and turn the filehandle
+ * to => zzip_disk_mmap for bringing it to main memory. If it can not
+ * be => mmap(2)'ed then we slurp the whole file into a newly => malloc(2)'ed
+ * memory block. Only if that fails too then we return null. Since handling
+ * of disk->buffer is ambiguous it should not be snatched away please.
+ *
+ * This function may return null on errors (errno).
+ */
+zzip__new__ ZZIP_DISK *
+zzip_disk_open(char *filename)
+{
+# ifndef O_BINARY
+# define O_BINARY 0
+# endif
+ struct stat st;
+ if (stat(filename, &st) || ! st.st_size)
+ return 0; /* ENOENT */
+ ___ int fd = open(filename, O_RDONLY | O_BINARY);
+ if (fd <= 0)
+ return 0; /* EACCESS */
+ ___ ZZIP_DISK *disk = zzip_disk_mmap(fd);
+ if (disk)
+ return disk;
+ ___ zzip_byte_t *buffer = malloc(st.st_size);
+ if (! buffer)
+ {
+ return 0; /* ENOMEM */
+ }
+ if ((st.st_size < read(fd, buffer, st.st_size)))
+ {
+ free (buffer);
+ return 0; /* EIO */
+ }
+ disk = zzip_disk_new();
+ if (! disk)
+ {
+ free (buffer);
+ return 0; /* ENOMEM */
+ }
+ disk->buffer = buffer;
+ disk->endbuf = buffer + st.st_size;
+ disk->mapped = -1;
+ disk->flags |= ZZIP_DISK_FLAGS_OWNED_BUFFER;
+ return disk;
+ ____;
+ ____;
+ ____;
+}
+
+/** => zzip_disk_mmap
+ * This function will attach a buffer with a zip image
+ * that was acquired from another source than a file.
+ * Note that if zzip_disk_mmap fails then zzip_disk_open
+ * will fall back and try to read the full file to memory
+ * wrapping a ZZIP_DISK around the memory buffer just as
+ * this function will do. Note that this function will not
+ * own the buffer, it will neither be written nor free()d.
+ *
+ * This function may return null (errno).
+ */
+zzip__new__ ZZIP_DISK *
+zzip_disk_buffer(void *buffer, size_t buflen) {
+ ZZIP_DISK *disk = zzip_disk_new();
+ if (disk)
+ {
+ disk->buffer = (zzip_byte_t *) buffer;
+ disk->endbuf = (zzip_byte_t *) buffer + buflen;
+ disk->mapped = -1;
+ }
+ return disk;
+}
+
+/** => zzip_disk_mmap
+ *
+ * This function will release all data needed to access a (mmapped)
+ * zip archive, including any malloc()ed blocks, sharedmem mappings
+ * and it dumps the handle struct as well.
+ *
+ * This function returns 0 on success (or whatever => munmap says).
+ */
+int
+zzip_disk_close(ZZIP_DISK * disk)
+{
+ if (! disk)
+ return 0;
+ if (disk->mapped != -1)
+ return zzip_disk_munmap(disk);
+ if (disk->flags & ZZIP_DISK_FLAGS_OWNED_BUFFER)
+ free(disk->buffer);
+ free(disk);
+ return 0;
+}
+
+/* ====================================================================== */
+/* helper functions */
+
+
+/** helper functions for (mmapped) zip access api
+ *
+ * This function augments the other zzip_disk_entry_* helpers: here we move
+ * a disk_entry pointer (as returned by _find* functions) into a pointer to
+ * the data block right after the file_header. Only disk->buffer would be
+ * needed to perform the seek but we check the mmapped range end as well.
+ *
+ * This function returns a pointer into disk->buffer or 0 on error (errno).
+ */
+zzip_byte_t *
+zzip_disk_entry_to_data(ZZIP_DISK * disk, struct zzip_disk_entry * entry)
+{
+ struct zzip_file_header *file = zzip_disk_entry_to_file_header(disk, entry);
+ if (! file)
+ return 0; /* EBADMSG */
+ return zzip_file_header_to_data(file);
+}
+
+/** => zzip_disk_entry_to_data
+ * This function does half the job of => zzip_disk_entry_to_data where it
+ * can augment with => zzip_file_header_to_data helper from format/fetch.h
+ *
+ * This function returns a pointer into disk->buffer or 0 on error (errno).
+ */
+struct zzip_file_header *
+zzip_disk_entry_to_file_header(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
+{
+ zzip_byte_t *const ptr = disk->buffer + zzip_disk_entry_fileoffset(entry);
+ if (disk->buffer > ptr || ptr >= disk->endbuf)
+ {
+ errno = EBADMSG;
+ return 0;
+ }
+ ___ struct zzip_file_header *file_header = (void *) ptr;
+ if (zzip_file_header_get_magic(file_header) != ZZIP_FILE_HEADER_MAGIC)
+ {
+ errno = EBADMSG;
+ return 0;
+ }
+ return file_header;
+ ____;
+}
+
+/** => zzip_disk_entry_to_data
+ * This function is a big helper despite its little name: in a zip file the
+ * encoded filenames are usually NOT zero-terminated but for common usage
+ * with libc we need it that way. Secondly, the filename SHOULD be present
+ * in the zip central directory but if not then we fallback to the filename
+ * given in the file_header of each compressed data portion.
+ *
+ * This function returns a new string buffer, or null on error.
+ * If no name can be found then an empty string is returned.
+ */
+zzip__new__ char *
+zzip_disk_entry_strdup_name(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
+{
+ if (! disk || ! entry)
+ {
+ errno=EINVAL;
+ return 0;
+ }
+
+ ___ char *name = 0;
+ zzip_size_t len = len = zzip_disk_entry_namlen(entry);
+ if (len)
+ {
+ name = zzip_disk_entry_to_filename(entry);
+ }
+ else
+ {
+ struct zzip_file_header *file = zzip_disk_entry_to_file_header(disk, entry);
+ if (! file)
+ return 0; /* EBADMSG */
+
+ len = zzip_file_header_namlen(file);
+ if (! len)
+ {
+ /* neither a name in disk_entry nor in file_header */
+ return strdup(""); /* ENOMEM */
+ }
+ name = zzip_file_header_to_filename(file);
+ }
+
+ if ((zzip_byte_t *) name < disk->buffer ||
+ (zzip_byte_t *) name + len > disk->endbuf)
+ {
+ errno=EBADMSG;
+ return 0;
+ }
+
+ return _zzip_strndup(name, len); /* ENOMEM */
+ ____;
+}
+
+/** => zzip_disk_entry_to_data
+ * This function is similar creating a reference to a zero terminated
+ * string but it can only exist in the zip central directory entry.
+ *
+ * This function returns a new string buffer, or null on error (errno).
+ * If no name can be found then an empty string is returned.
+ */
+zzip__new__ char *
+zzip_disk_entry_strdup_comment(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
+{
+ if (! disk || ! entry)
+ {
+ errno = EINVAL;
+ return 0;
+ }
+
+ ___ zzip_size_t len = zzip_disk_entry_comment(entry);
+ if (! len)
+ {
+ return strdup(""); /* ENOMEM */
+ }
+
+ ___ char *text = zzip_disk_entry_to_comment(entry);
+ if ((zzip_byte_t *) text < disk->buffer ||
+ (zzip_byte_t *) text + len > disk->endbuf)
+ {
+ errno = EBADMSG;
+ return 0;
+ }
+
+ return _zzip_strndup(text, len); /* ENOMEM */
+ ____;
+ ____;
+}
+
+/* ====================================================================== */
+
+/** => zzip_disk_findfile
+ *
+ * This function is the first call of all the zip access functions here.
+ * It contains the code to find the first entry of the zip central directory.
+ * Here we require the mmapped block to represent a real zip file where the
+ * disk_trailer is _last_ in the file area, so that its position would be at
+ * a fixed offset from the end of the file area if not for the comment field
+ * allowed to be of variable length (which needs us to do a little search
+ * for the disk_tailer). However, in this simple implementation we disregard
+ * any disk_trailer info telling about multidisk archives, so we just return
+ * a pointer to the zip central directory.
+ *
+ * For an actual means, we are going to search backwards from the end
+ * of the mmaped block looking for the PK-magic signature of a
+ * disk_trailer. If we see one then we check the rootseek value to
+ * find the first disk_entry of the root central directory. If we find
+ * the correct PK-magic signature of a disk_entry over there then we
+ * assume we are done and we are going to return a pointer to that label.
+ *
+ * The return value is a pointer to the first zzip_disk_entry being checked
+ * to be within the bounds of the file area specified by the arguments. If
+ * no disk_trailer was found then null is returned, and likewise we only
+ * accept a disk_trailer with a seekvalue that points to a disk_entry and
+ * both parts have valid PK-magic parts. Beyond some sanity check we try to
+ * catch a common brokeness with zip archives that still allows us to find
+ * the start of the zip central directory.So this function may return null
+ * and sets errno.
+ */
+struct zzip_disk_entry *
+zzip_disk_findfirst(ZZIP_DISK * disk)
+{
+ DBG1("findfirst");
+ if (! disk)
+ {
+ DBG1("non arg");
+ errno = EINVAL;
+ return 0;
+ }
+ if (disk->buffer > disk->endbuf - sizeof(struct zzip_disk_trailer))
+ {
+ DBG1("not enough data for a disk trailer");
+ errno = EBADMSG;
+ return 0;
+ }
+ ___ zzip_byte_t *p = disk->endbuf - sizeof(struct zzip_disk_trailer);
+ for (; p >= disk->buffer; p--)
+ {
+ zzip_byte_t *root; /* (struct zzip_disk_entry*) */
+ zzip_size_t rootsize; /* Size of root central directory */
+
+ if (zzip_disk_trailer_check_magic(p))
+ {
+ struct zzip_disk_trailer *trailer = (struct zzip_disk_trailer *) p;
+ zzip_size_t rootseek = zzip_disk_trailer_get_rootseek(trailer);
+ rootsize = zzip_disk_trailer_get_rootsize(trailer);
+
+ root = disk->buffer + rootseek;
+ DBG2("disk rootseek at %lli", (long long)rootseek);
+ if (root > p)
+ {
+ /* the first disk_entry is after the disk_trailer? can't be! */
+ DBG2("have rootsize at %lli", (long long)rootsize);
+ if (disk->buffer + rootsize > p)
+ continue;
+ /* a common brokeness that can be fixed: we just assume the
+ * central directory was written directly before the trailer:*/
+ root = p - rootsize;
+ }
+ } else if (zzip_disk64_trailer_check_magic(p))
+ {
+ struct zzip_disk64_trailer *trailer =
+ (struct zzip_disk64_trailer *) p;
+ if (sizeof(void *) < 8)
+ {
+ DBG1("disk64 trailer in non-largefile part");
+ errno = EFBIG;
+ return 0;
+ }
+ zzip_size_t rootseek = zzip_disk64_trailer_get_rootseek(trailer);
+ rootsize = zzip_disk64_trailer_get_rootsize(trailer);
+ DBG2("disk64 rootseek at %lli", (long long)rootseek);
+ root = disk->buffer + rootseek;
+ if (root > p)
+ continue;
+ } else
+ {
+ continue;
+ }
+
+ DBG4("buffer %p root %p endbuf %p", disk->buffer, root, disk->endbuf);
+ if (root < disk->buffer)
+ {
+ DBG1("root before buffer should be impossible");
+ errno = EBADMSG;
+ return 0;
+ }
+ if (root >= disk->endbuf || (root + rootsize) >= disk->endbuf)
+ {
+ DBG1("root behind endbuf should be impossible");
+ errno = EBADMSG;
+ return 0;
+ }
+ if (zzip_disk_entry_check_magic(root))
+ {
+ DBG2("found the disk root %p", root);
+ return (struct zzip_disk_entry *) root;
+ }
+ } ____;
+ /* not found */
+ errno = ENOENT;
+ return 0;
+}
+
+/** => zzip_disk_findfile
+ *
+ * This function takes an existing disk_entry in the central root directory
+ * (e.g. from zzip_disk_findfirst) and returns the next entry within in
+ * the given bounds of the mmapped file area.
+ *
+ * This function returns null if no next entry can be found.
+ * This function may return null on errors. (errno = ENOENT|EINVAL|EBADMSG)
+ */
+struct zzip_disk_entry *
+zzip_disk_findnext(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
+{
+ if (! disk || ! entry)
+ {
+ errno = EINVAL;
+ return 0;
+ }
+ if ((zzip_byte_t *) entry < disk->buffer ||
+ (zzip_byte_t *) entry > disk->endbuf - sizeof(entry) ||
+ ! zzip_disk_entry_check_magic(entry) ||
+ zzip_disk_entry_sizeto_end(entry) > 64 * 1024)
+ {
+ errno = EBADMSG;
+ return 0;
+ }
+ entry = zzip_disk_entry_to_next_entry(entry);
+ if ((zzip_byte_t *) entry > disk->endbuf - sizeof(entry) ||
+ ! zzip_disk_entry_check_magic(entry) ||
+ zzip_disk_entry_sizeto_end(entry) > 64 * 1024 ||
+ zzip_disk_entry_skipto_end(entry) + sizeof(entry) > disk->endbuf)
+ {
+ errno = ENOENT;
+ return 0;
+ }
+ return entry;
+}
+
+/** search for files in the (mmapped) zip central directory
+ *
+ * This function is given a filename as an additional argument, to find the
+ * disk_entry matching a given filename. The compare-function is usually
+ * strcmp or strcasecmp or perhaps strcoll, if null then strcmp is used.
+ * - use null as argument for "after"-entry when searching the first
+ * matching entry, otherwise the last returned value if you look for other
+ * entries with a special "compare" function (if null then a doubled search
+ * is rather useless with this variant of _findfile).
+ *
+ * This functionreturns the entry pointer.
+ * This function may return null on error. (errno = ENOMEM|EBADMSG|ENOENT)
+ */
+struct zzip_disk_entry *
+zzip_disk_findfile(ZZIP_DISK * disk, char *filename,
+ struct zzip_disk_entry *after, zzip_strcmp_fn_t compare)
+{
+ struct zzip_disk_entry *entry = (! after ? zzip_disk_findfirst(disk)
+ : zzip_disk_findnext(disk, after));
+ if (! compare)
+ compare = (zzip_strcmp_fn_t) ((disk->flags & ZZIP_DISK_FLAGS_MATCH_NOCASE) ?
+ (_zzip_strcasecmp) : (strcmp));
+ for (; entry; entry = zzip_disk_findnext(disk, entry))
+ {
+ /* filenames within zip files are often not null-terminated! */
+ char *realname = zzip_disk_entry_strdup_name(disk, entry);
+ if (! realname)
+ {
+ return 0; /* ENOMEM | EBADMSG */
+ }
+ if (! compare(filename, realname))
+ {
+ free(realname);
+ return entry; /* found */
+ }
+ free(realname);
+ }
+ errno = ENOENT;
+ return 0;
+}
+
+/** => zzip_disk_findfile
+ *
+ * This function uses a compare-function with an additional argument
+ * and it is called just like fnmatch(3) from POSIX.2 AD:1993), i.e.
+ * the argument filespec first and the ziplocal filename second with
+ * the integer-flags put in as third to the indirect call. If the
+ * platform has fnmatch available then null-compare will use that one
+ * and otherwise we fall back to mere strcmp, so if you need fnmatch
+ * searching then please provide an implementation somewhere else.
+ * - use null as argument for "after"-entry when searching the first
+ * matching entry, or the last disk_entry return-value to find the
+ * next entry matching the given filespec.
+ *
+ * This function will return the matching entry pointer.
+ * This function may return null on error. (errno = ENOMEM|EBADMSG|ENOENT)
+ */
+struct zzip_disk_entry *
+zzip_disk_findmatch(ZZIP_DISK * disk, char *filespec,
+ struct zzip_disk_entry *after,
+ zzip_fnmatch_fn_t compare, int flags)
+{
+ struct zzip_disk_entry *entry = (! after ? zzip_disk_findfirst(disk)
+ : zzip_disk_findnext(disk, after));
+ if (! compare)
+ {
+ compare = (zzip_fnmatch_fn_t) _zzip_fnmatch;
+ if (disk->flags & ZZIP_DISK_FLAGS_MATCH_NOCASE)
+ flags |= _zzip_FNM_CASEFOLD;
+ }
+ for (; entry; entry = zzip_disk_findnext(disk, entry))
+ {
+ /* filenames within zip files are often not null-terminated! */
+ char *realname = zzip_disk_entry_strdup_name(disk, entry);
+ if (! realname)
+ {
+ return 0; /* ENOMEM | EBADMSG */
+ }
+ if (compare(filespec, realname, flags))
+ {
+ free(realname);
+ return entry; /* found */
+ }
+ free(realname);
+ }
+ errno = ENOENT;
+ return 0;
+}
+
+/* ====================================================================== */
+
+/** => zzip_disk_fopen
+ *
+ * the ZZIP_DISK_FILE* is rather simple in just encapsulating the
+ * arguments given to this function plus a zlib deflate buffer.
+ * Note that the ZZIP_DISK pointer does already contain the full
+ * mmapped file area of a zip disk, so open()ing a file part within
+ * that area happens to be a lookup of its bounds and encoding. That
+ * information is memorized on the ZZIP_DISK_FILE so that subsequent
+ * _read() operations will be able to get the next data portion or
+ * return an eof condition for that file part wrapped in the zip archive.
+ *
+ * This function may return null on errors (errno = ENOMEM|EBADMSG).
+ */
+zzip__new__ ZZIP_DISK_FILE *
+zzip_disk_entry_fopen(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry)
+{
+ /* keep this in sync with zzip_mem_entry_fopen */
+ struct zzip_file_header *header =
+ zzip_disk_entry_to_file_header(disk, entry);
+ if (! header)
+ return 0; /* EBADMSG */
+ ___ ZZIP_DISK_FILE *file = malloc(sizeof(ZZIP_DISK_FILE));
+ if (! file)
+ return 0; /* ENOMEM */
+ file->buffer = disk->buffer;
+ file->endbuf = disk->endbuf;
+ file->avail = zzip_file_header_usize(header);
+
+ if (! file->avail || zzip_file_header_data_stored(header))
+ {
+ file->stored = zzip_file_header_to_data (header);
+ DBG2("stored size %i", (int) file->avail);
+ if (file->stored + file->avail >= disk->endbuf)
+ goto error;
+ return file;
+ }
+
+ file->stored = 0;
+ file->zlib.opaque = 0;
+ file->zlib.zalloc = Z_NULL;
+ file->zlib.zfree = Z_NULL;
+ file->zlib.avail_in = zzip_file_header_csize(header);
+ file->zlib.next_in = zzip_file_header_to_data(header);
+
+ DBG2("compressed size %i", (int) file->zlib.avail_in);
+ if (file->zlib.next_in + file->zlib.avail_in >= disk->endbuf)
+ goto error;
+ if (file->zlib.next_in < disk->buffer)
+ goto error;
+
+ if (! zzip_file_header_data_deflated(header))
+ goto error;
+ if (inflateInit2(&file->zlib, -MAX_WBITS) != Z_OK)
+ goto error;
+
+ return file;
+error:
+ free (file);
+ errno = EBADMSG;
+ return 0;
+ ____;
+}
+
+/** openening a file part wrapped within a (mmapped) zip archive
+ *
+ * This function opens a file found by name, so it does a search into
+ * the zip central directory with => zzip_disk_findfile and whatever
+ * is found first is given to => zzip_disk_entry_fopen
+ *
+ * This function may return null on errors (errno).
+ */
+zzip__new__ ZZIP_DISK_FILE *
+zzip_disk_fopen(ZZIP_DISK * disk, char *filename)
+{
+ ZZIP_DISK_ENTRY *entry = zzip_disk_findfile(disk, filename, 0, 0);
+ if (! entry)
+ return 0; /* EBADMSG */
+ return zzip_disk_entry_fopen(disk, entry);
+}
+
+/** => zzip_disk_fopen
+ *
+ * This function reads more bytes into the output buffer specified as
+ * arguments. The return value is null on eof or error, the stdio-like
+ * interface can not distinguish between these so you need to check
+ * with => zzip_disk_feof for the difference.
+ */
+zzip_size_t
+zzip_disk_fread(void *ptr, zzip_size_t sized, zzip_size_t nmemb,
+ ZZIP_DISK_FILE * file)
+{
+ zzip_size_t size = sized * nmemb;
+ if (! ptr || ! sized || ! file)
+ return 0;
+ if (size > file->avail)
+ size = file->avail;
+ if (file->stored)
+ {
+ if (file->stored + size >= file->endbuf)
+ {
+ DBG1("try to read beyond end of file");
+ return 0; /* ESPIPE */
+ }
+ DBG3("copy stored %p %i", file->stored, (int)size);
+ memcpy(ptr, file->stored, size);
+ file->stored += size;
+ file->avail -= size;
+ return size;
+ }
+
+ file->zlib.avail_out = sized * nmemb;
+ file->zlib.next_out = ptr;
+ ___ zzip_size_t total_old = file->zlib.total_out;
+ ___ int err = inflate(&file->zlib, Z_NO_FLUSH);
+ if (err == Z_STREAM_END)
+ file->avail = 0;
+ else if (err == Z_OK)
+ file->avail -= file->zlib.total_out - total_old;
+ else
+ return 0;
+ return file->zlib.total_out - total_old;
+ ____;
+ ____;
+}
+
+/** => zzip_disk_fopen
+ * This function releases any zlib decoder info needed for decompression
+ * and dumps the ZZIP_DISK_FILE* then.
+ *
+ * This function always returns 0.
+ */
+int
+zzip_disk_fclose(ZZIP_DISK_FILE * file)
+{
+ if (file)
+ {
+ if (! file->stored)
+ inflateEnd(&file->zlib);
+ free(file);
+ }
+ return 0;
+}
+
+/** => zzip_disk_fopen
+ *
+ * This function allows to distinguish an error from an eof condition.
+ * Actually, if we found an error but we did already reach eof then we
+ * just keep on saying that it was an eof, so the app can just continue.
+ *
+ * This function returns EOF in case and 0 when not at the end
+ * of file.
+ */
+int
+zzip_disk_feof(ZZIP_DISK_FILE * file)
+{
+ if (! file || ! file->avail)
+ return EOF;
+ return 0;
+}
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.h b/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.h
new file mode 100644
index 00000000000..4418db47bd6
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.h
@@ -0,0 +1,133 @@
+#ifndef _ZZIP_MMAPPED_H_
+#define _ZZIP_MMAPPED_H_
+/*
+ * NOTE: this is part of libzzipmmapped (i.e. it is not libzzip).
+ *
+ * simplified zip disk access using a mmapping of the whole archive.
+ *
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+
+#include <zzip/types.h>
+
+#ifdef _ZZIP_DISK_FILE_STRUCT
+#include <zlib.h> /* z_stream */
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct zzip_disk_file ZZIP_DISK_FILE;
+typedef struct zzip_disk ZZIP_DISK;
+/* def struct zzip_disk_entry ZZIP_DISK_ENTRY; */
+
+/* we expose this structure so third party applications can augment
+ * on them. The mmapped zip access usually just needs the two pointers
+ * specifying the mmapped area, wherever you have that from.
+ */
+struct zzip_disk
+{
+ zzip_byte_t* buffer; /* start of mmapped area, the base of all seekvals */
+ zzip_byte_t* endbuf; /* end of mmapped area, i.e. buffer + buflen */
+ void* reserved; /* - for later extensions (might be renamed) */
+ void* user; /* - free for applications (use this!) */
+ long flags; /* bit 0: findfile searches case-insensitive */
+ long mapped; /* used for mmap() wrappers of zzip/__mmap.h */
+ long unused; /* - for later extensions (might be renamed) */
+ long code; /* - free for applications (use this!) */
+};
+
+/* fnmatch search shall be case insensitive */
+#define ZZIP_DISK_FLAGS_MATCH_NOCASE 1
+#define ZZIP_DISK_FLAGS_OWNED_BUFFER 2
+
+typedef int (*zzip_strcmp_fn_t)(char*, char*);
+typedef int (*zzip_fnmatch_fn_t)(char*, char*, int);
+
+#define zzip_disk_extern extern
+
+zzip_disk_extern int
+zzip_disk_init(ZZIP_DISK* disk, void* buffer, zzip_size_t buflen);
+
+zzip_disk_extern zzip__new__ ZZIP_DISK*
+zzip_disk_new(void);
+
+zzip_disk_extern zzip__new__ ZZIP_DISK*
+zzip_disk_mmap(int fd);
+
+zzip_disk_extern int
+zzip_disk_munmap(ZZIP_DISK* disk);
+
+zzip_disk_extern zzip__new__ ZZIP_DISK*
+zzip_disk_open(char* filename);
+
+zzip_disk_extern zzip__new__ ZZIP_DISK *
+zzip_disk_buffer(void *buffer, size_t buflen);
+
+zzip_disk_extern int
+zzip_disk_close(ZZIP_DISK* disk);
+
+
+zzip_disk_extern ZZIP_DISK_ENTRY*
+zzip_disk_findfirst(ZZIP_DISK* disk);
+
+zzip_disk_extern ZZIP_DISK_ENTRY*
+zzip_disk_findnext(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry);
+
+zzip_disk_extern zzip__new__ char*
+zzip_disk_entry_strdup_name(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry);
+zzip_disk_extern zzip__new__ char*
+zzip_disk_entry_strdup_comment(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry);
+zzip_disk_extern struct zzip_file_header*
+zzip_disk_entry_to_file_header(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry);
+zzip_disk_extern zzip_byte_t*
+zzip_disk_entry_to_data(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry);
+
+zzip_disk_extern ZZIP_DISK_ENTRY*
+zzip_disk_findfile(ZZIP_DISK* disk,
+ char* filename, ZZIP_DISK_ENTRY* after,
+ zzip_strcmp_fn_t compare);
+zzip_disk_extern ZZIP_DISK_ENTRY*
+zzip_disk_findmatch(ZZIP_DISK* disk,
+ char* filespec, ZZIP_DISK_ENTRY* after,
+ zzip_fnmatch_fn_t compare, int flags);
+
+
+zzip_disk_extern zzip__new__ ZZIP_DISK_FILE*
+zzip_disk_entry_fopen (ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry);
+
+zzip_disk_extern zzip__new__ ZZIP_DISK_FILE*
+zzip_disk_fopen (ZZIP_DISK* disk, char* filename);
+
+zzip_disk_extern _zzip_size_t
+zzip_disk_fread (void* ptr, _zzip_size_t size, _zzip_size_t nmemb,
+ ZZIP_DISK_FILE* file);
+zzip_disk_extern int
+zzip_disk_fclose (ZZIP_DISK_FILE* file);
+int
+zzip_disk_feof (ZZIP_DISK_FILE* file);
+
+#ifdef _ZZIP_DISK_FILE_STRUCT
+/**
+ * typedef struct zzip_disk_file ZZIP_DISK_FILE;
+ */
+struct zzip_disk_file
+{
+ zzip_byte_t* buffer; /* fopen disk->buffer */
+ zzip_byte_t* endbuf; /* fopen disk->endbuf */
+ zzip_size_t avail; /* memorized for checks on EOF */
+ z_stream zlib; /* for inflated blocks */
+ zzip_byte_t* stored; /* for stored blocks */
+};
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/plugin.c b/Build/source/libs/zziplib/zziplib-src/zzip/plugin.c
new file mode 100644
index 00000000000..3ce23a5e8b9
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/plugin.c
@@ -0,0 +1,89 @@
+
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ * Mike Nordell <tamlin-@-algonet-se>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#include <zzip/lib.h>
+#include <zzip/plugin.h>
+
+#include <string.h>
+#include <sys/stat.h>
+#include <errno.h>
+#include <stdlib.h>
+#ifdef DEBUG
+#include <stdio.h>
+#endif
+
+#include <zzip/file.h>
+#include <zzip/format.h>
+
+/** get file size.
+ * This function works on a real file descriptor.
+ */
+zzip_off_t
+zzip_filesize(int fd)
+{
+ struct stat st;
+
+ if (fstat(fd, &st) < 0)
+ return -1;
+
+# if defined DEBUG && ! defined _WIN32
+ if (! st.st_size && st.st_blocks > 1) /* seen on some darwin 10.1 machines */
+ fprintf(stderr, "broken fstat(2) ?? st_size=%ld st_blocks=%ld\n",
+ (long) st.st_size, (long) st.st_blocks);
+# endif
+
+ return st.st_size;
+}
+
+static struct zzip_plugin_io default_io = {
+ &open,
+ &close,
+ &_zzip_read,
+ &_zzip_lseek,
+ &zzip_filesize,
+ 1, 1,
+ &_zzip_write
+};
+
+/** => zzip_init_io
+ * This function returns a zzip_plugin_io_t handle to static defaults
+ * wrapping the posix io file functions for actual file access. The
+ * returned structure is shared by all threads in the system.
+ */
+zzip_plugin_io_t
+zzip_get_default_io(void)
+{
+ return (zzip_plugin_io_t) & default_io;
+}
+
+/** init plugin struct.
+ *
+ * This function initializes the users handler struct to default values
+ * being the posix io functions in default configured environments.
+ *
+ * Note that the target io_handlers_t structure should be static or
+ * atleast it should be kept during the lifetime of zzip operations.
+ */
+int
+zzip_init_io(zzip_plugin_io_handlers_t io, int flags)
+{
+ if (! io)
+ {
+ return ZZIP_ERROR;
+ }
+ memcpy(io, &default_io, sizeof(default_io));
+ io->fd.sys = flags;
+ return 0;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/plugin.h b/Build/source/libs/zziplib/zziplib-src/zzip/plugin.h
new file mode 100644
index 00000000000..b4b39722e96
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/plugin.h
@@ -0,0 +1,94 @@
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft
+ *
+ * the interfaces for the plugin_io system
+ *
+ * Using the following you can provide your own file I/O functions to
+ * e.g. read data directly from memory, provide simple
+ * "encryption"/"decryption" of on-disk .zip-files...
+ * Note that this currently only provides a subset of the functionality
+ * in zziplib. It does not attempt to provide any directory functions,
+ * but if your program 1) only uses ordinary on-disk files and you
+ * just want this for file obfuscation, or 2) you only access your
+ * .zip archives using zzip_open & co., this is sufficient.
+ *
+ * Currently the default io are the POSIX functions, except
+ * for 'filesize' that is zziplibs own provided zzip_filesize function,
+ * using standard POSIX fd's. You are however free to replace this with
+ * whatever data type you need, so long as you provide implementations
+ * for all the functions, and the data type fits an int.
+ *
+ * all functions receiving ext_io are able to cope with both arguments
+ * set to zero which will let them default to a ZIP ext and posix io.
+ */
+#ifndef _ZZIP_PLUGIN_H /* zzip-io.h */
+#define _ZZIP_PLUGIN_H 1
+
+#include <zzip/zzip.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* we have renamed zzip_plugin_io.use_mmap to zzip_plugin_io.sys */
+#define ZZIP_PLUGIN_IO_SYS 1
+
+struct zzip_plugin_io { /* use "zzip_plugin_io_handlers" in applications !! */
+ int (*open)(zzip_char_t* name, int flags, ...);
+ int (*close)(int fd);
+ zzip_ssize_t (*read)(int fd, void* buf, zzip_size_t len);
+ zzip_off_t (*seeks)(int fd, zzip_off_t offset, int whence);
+ zzip_off_t (*filesize)(int fd);
+ long sys;
+ long type;
+ zzip_ssize_t (*write)(int fd, _zzip_const void* buf, zzip_size_t len);
+};
+
+typedef union _zzip_plugin_io
+{
+ struct zzip_plugin_io fd;
+ struct { void* padding[8]; } ptr;
+} zzip_plugin_io_handlers;
+
+#define _zzip_plugin_io_handlers zzip_plugin_io_handlers
+
+/* for backward compatibility, add the following to your application code:
+ * #ifndef _zzip_plugin_io_handlers
+ * #define _zzip_plugin_io_handlers struct zzip_plugin_io
+ */
+typedef zzip_plugin_io_handlers* zzip_plugin_io_handlers_t;
+
+#ifdef ZZIP_LARGEFILE_RENAME
+#define zzip_filesize zzip_filesize64
+#define zzip_get_default_io zzip_get_default_io64
+#define zzip_init_io zzip_init_io64
+#endif
+
+_zzip_export zzip_off_t
+zzip_filesize(int fd);
+
+/* get the default file I/O functions.
+ * This functions returns a pointer to an internal static structure.
+ */
+_zzip_export zzip_plugin_io_t zzip_get_default_io(void);
+
+/*
+ * Initializes a zzip_plugin_io_t to the zziplib default io.
+ * This is useful if you only want to override e.g. the 'read' function.
+ * all zzip functions that can receive a zzip_plugin_io_t can
+ * handle a zero pointer in that place and default to posix io.
+ */
+_zzip_export
+int zzip_init_io(zzip_plugin_io_handlers_t io, int flags);
+
+/* zzip_init_io flags : */
+# define ZZIP_IO_USE_MMAP 1
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/stat.c b/Build/source/libs/zziplib/zziplib-src/zzip/stat.c
new file mode 100644
index 00000000000..0c53b4592bb
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/stat.c
@@ -0,0 +1,131 @@
+
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ * Tomi Ollila <Tomi.Ollila@iki.fi>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ *
+ * Description:
+ * although this file is defining a function called zzip_stat it
+ * will not need a real stat(2) exported by the Operating System.
+ * It will just try to fill the fields of the ZZIP_STAT structure
+ * of
+ */
+
+#include <zzip/lib.h> /* exported... */
+#include <zzip/file.h>
+#include <string.h>
+#if defined(_AIX)
+#include <strings.h> /* for strcasecmp */
+#endif
+#include <sys/stat.h>
+
+#define ZZIP_USE_INTERNAL
+#include <zzip/info.h>
+
+/** get meta infornation on a zipped element.
+ * This function obtains information about a filename in an opened zip-archive
+ * without opening that file first. Mostly used to obtain the uncompressed
+ * size of a file inside a zip-archive. see => zzip_dir_open.
+ */
+int
+zzip_dir_stat(ZZIP_DIR * dir, zzip_char_t * name, ZZIP_STAT * zs, int flags)
+{
+ struct zzip_dir_hdr *hdr = dir->hdr0;
+ int (*cmp) (zzip_char_t *, zzip_char_t *);
+
+ if (flags & ZZIP_CASEINSENSITIVE) flags |= ZZIP_CASELESS;
+ cmp = (flags & ZZIP_CASELESS) ? strcasecmp : strcmp;
+
+ if (! hdr)
+ {
+ dir->errcode = ZZIP_ENOENT;
+ return -1;
+ }
+
+ if (flags & ZZIP_IGNOREPATH)
+ {
+ char *n = strrchr(name, '/');
+ if (n)
+ name = n + 1;
+ }
+
+ while (1)
+ {
+ register char *hdr_name = hdr->d_name;
+ if (flags & ZZIP_IGNOREPATH)
+ {
+ register char *n = strrchr(hdr_name, '/');
+ if (n)
+ hdr_name = n + 1;
+ }
+
+ if (! cmp(hdr_name, name))
+ break;
+
+ if (! hdr->d_reclen)
+ {
+ dir->errcode = ZZIP_ENOENT;
+ return -1;
+ }
+
+ hdr = (struct zzip_dir_hdr *) ((char *) hdr + hdr->d_reclen);
+ }
+
+ zs->d_compr = hdr->d_compr;
+ zs->d_csize = hdr->d_csize;
+ zs->st_size = hdr->d_usize;
+ zs->d_name = hdr->d_name;
+
+ return 0;
+}
+
+/** => zzip_dir_stat
+ * This function will obtain information about a opened file _within_ a
+ * zip-archive. The file is supposed to be open (otherwise -1 is returned).
+ * The st_size stat-member contains the uncompressed size. The optional
+ * d_name is never set here.
+ */
+int
+zzip_file_stat(ZZIP_FILE * file, ZZIP_STAT * zs)
+{
+ if (! file)
+ return -1;
+ zs->d_compr = file->method;
+ zs->d_csize = file->csize;
+ zs->st_size = file->usize;
+ zs->d_name = 0;
+ return 0;
+}
+
+/** => zzip_dir_stat
+ * This function will obtain information about a opened file which may be
+ * either real/zipped. The file is supposed to be open (otherwise -1 is
+ * returned). The st_size stat-member contains the uncompressed size.
+ * The optional d_name is never set here. For a real file, we do set the
+ * d_csize := st_size and d_compr := 0 for meaningful defaults.
+ */
+int
+zzip_fstat(ZZIP_FILE * file, ZZIP_STAT * zs)
+{
+ if (ZZIP_file_real(file))
+ {
+ struct stat st;
+ if (fstat(file->fd, &st) < 0)
+ return -1;
+ zs->st_size = st.st_size;
+ zs->d_csize = st.st_size;
+ zs->d_compr = 0;
+ return 0;
+ } else
+ {
+ return zzip_file_stat(file, zs);
+ }
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/stdint.h b/Build/source/libs/zziplib/zziplib-src/zzip/stdint.h
new file mode 100644
index 00000000000..9526976356c
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/stdint.h
@@ -0,0 +1,56 @@
+#ifndef _ZZIP__STDINT_H /* zzip-stdint.h */
+#define _ZZIP__STDINT_H 1
+/* this file ensures that we have some kind of typedef declarations for
+ unsigned C9X typedefs. The ISO C 9X: 7.18 Integer types file is stdint.h
+ */
+
+#include <zzip/conf.h>
+
+/* enforce use of ifdef'd C9X entries in system headers */
+#define __USE_ANSI 1
+#define __USE_ISOC9X 1
+
+#ifdef ZZIP_HAVE_STDINT_H
+ /* ISO C 9X: 7.18 Integer types <stdint.h> */
+#include <stdint.h>
+#elif defined ZZIP_HAVE_SYS_INT_TYPES_H /*solaris*/
+#include <sys/int_types.h>
+#elif defined ZZIP_HAVE_INTTYPES_H /*freebsd*/
+#include <inttypes.h>
+#else
+ typedef unsigned char uint8_t; typedef signed char int8_t;
+
+# if ZZIP_SIZEOF_INT && ZZIP_SIZEOF_INT == 2
+ typedef unsigned int uint16_t; typedef signed int int16_t;
+# elif ZZIP_SIZEOF_SHORT && ZZIP_SIZEOF_SHORT == 2
+ typedef unsigned short uint16_t; typedef signed short int16_t;
+# else
+# error unable to typedef int16_t from either int or short
+ typedef unsigned short uint16_t; typedef signed short int16_t;
+# endif
+
+# if defined ZZIP_SIZEOF_INT && ZZIP_SIZEOF_INT == 4
+ typedef unsigned int uint32_t; typedef signed int int32_t;
+# elif defined ZZIP_SIZEOF_LONG && ZZIP_SIZEOF_LONG == 4
+ typedef unsigned long uint32_t; typedef signed long int32_t;
+# else
+# error unable to typedef int32_t from either int or long
+ typedef unsigned long uint32_t; typedef signed long int32_t;
+# endif
+
+/* either (long long) on Unix or (__int64) on Windows */
+typedef unsigned _zzip___int64 uint64_t; typedef _zzip___int64 int64_t;
+
+# if defined ZZIP_SIZEOF_INT_P
+# if ZZIP_SIZEOF_INT_P == ZZIP_SIZEOF_LONG+0
+ typedef long intptr_t;
+# elif ZZIP_SIZEOF_INT_P == ZZIP_SIZEOF_INT+0
+ typedef int intptr_t;
+# else
+ typedef int64_t intptr_t;
+# endif
+# endif
+
+#endif /* ZZIP_HAVE_... */
+#endif /*_ZZIP_STDINT_H*/
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/types.h b/Build/source/libs/zziplib/zziplib-src/zzip/types.h
new file mode 100644
index 00000000000..ff234bc1031
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/types.h
@@ -0,0 +1,52 @@
+/*
+ * unlike in <zzip/conf.h> we are allowed to make up typedefs here,
+ * while over there only #defines are allowed
+ *
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ *
+ * This file is usually the first to define some real symbols. If you do
+ * see some errors here then it is most likely the includepath is wrong
+ * or some includeheader is missing / unreadable on your system.
+ * (a) we include local headers with a "zzip/" prefix just to be sure
+ * to not actually get the wrong one. Consider to add `-I..` somewhere
+ * and especially VC/IDE users (who make up their own workspace files)
+ * should include the root source directory of this project.
+ * (b) size_t and ssize_t are sometimes found be `configure` but they are
+ * not in the usual places (ANSI C = stddef.h; UNIX = sys/types.h), so
+ * be sure to look for them and add the respective header as an #include.
+ */
+
+#ifndef _ZZIP_TYPES_H_
+#define _ZZIP_TYPES_H_
+
+#include <zzip/conf.h>
+#include <fcntl.h>
+#include <stddef.h> /* size_t and friends */
+#ifdef ZZIP_HAVE_SYS_TYPES_H
+#include <sys/types.h> /* bsd (mac) has size_t here */
+#endif
+/* msvc6 has neither ssize_t (we assume "int") nor off_t (assume "long") */
+
+typedef unsigned char zzip_byte_t; // especially zlib decoding data
+
+typedef _zzip_off64_t zzip_off64_t;
+typedef _zzip_off_t zzip_off_t;
+typedef _zzip_size_t zzip_size_t; /* Some error here? */
+typedef _zzip_ssize_t zzip_ssize_t; /* See notes above! */
+
+/* in <zzip/format.h> */
+typedef struct zzip_disk64_trailer ZZIP_DISK64_TRAILER;
+typedef struct zzip_disk_trailer ZZIP_DISK_TRAILER;
+typedef struct zzip_file_trailer ZZIP_FILE_TRAILER;
+typedef struct zzip_root_dirent ZZIP_ROOT_DIRENT;
+typedef struct zzip_file_header ZZIP_FILE_HEADER;
+typedef struct zzip_disk_entry ZZIP_DISK_ENTRY;
+typedef struct zzip_extra_block ZZIP_EXTRA_BLOCK;
+
+
+
+#endif
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/write.c b/Build/source/libs/zziplib/zziplib-src/zzip/write.c
new file mode 100644
index 00000000000..cfec8164931
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/write.c
@@ -0,0 +1,482 @@
+/*
+ * The write-support in zziplib is not a full-flegded interface to the
+ * internals that zip file-header or zip archive an contain. It's
+ * primary use goes for savegames or transfer `pack-n-go` archives
+ * where time-stamps are rather unimportant. Here we can create an
+ * archive with filenames and their data portions, possibly obfuscated.
+ *
+ * DON'T USE THIS
+ *
+ * The write support is supposed to be added directly into the main
+ * zziplib but it has not been implemented so far. It does however
+ * export the relevant call entries which will return EROFS (read-only
+ * filesystem) in case they are being called. That allows later programs
+ * to start up with earlier versions of zziplib that can only read ZIPs.
+ *
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#define _ZZIP_WRITE_SOURCE
+
+#if defined DDDD || defined DDDDD || defined DDDDDD || defined DDDDDDD
+#define _ZZIP_ENABLE_WRITE
+#else /* per default, we add support for passthrough to posix write */
+#define _ZZIP_POSIX_WRITE
+#endif
+
+#include <zzip/write.h> /* #includes <zzip/lib.h> */
+#include <zzip/file.h>
+
+#include <string.h>
+#include <sys/stat.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+#ifdef ZZIP_HAVE_DIRECT_H
+#include <direct.h>
+#endif
+
+#include <zzip/format.h>
+#include <zzip/plugin.h>
+#include <zzip/__mkdir.h>
+#include <zzip/__debug.h>
+
+#define ___ {
+#define ____ }
+
+#ifndef EROFS
+# ifdef ENOSYS
+#define EROFS ENOSYS
+# else
+#define EROFS EPERM
+#endif
+#endif
+
+/* try real zlib routines for writing ? very experimental, very very ex... */
+#ifndef _ZZIP_ENABLE_WRITE
+#define _ZZIP_TRY 0
+#else
+#define _ZZIP_TRY 1
+#endif
+
+/* btw, is there any system that did define those different ? get away.. */
+# ifndef S_IWGRP
+# define S_IWGRP 00020
+# endif
+# ifndef S_IRWXO
+# define S_IRWXO 00007
+# endif
+
+/** create a new zip archive for writing
+ *
+ * This function will create a new zip archive. The returned parameter
+ * is a new "zzip dir" handle that should be saved to a variable so it
+ * can be used a base argument for => zzip_mkdir and => zzip_creat calls.
+ * The returned handle represents a zip central directory that must be
+ * saved to disk using => zzip_closedir.
+ *
+ * Returns null on error and sets errno. Remember, according to posix
+ * the => creat(2) call is equivalent to
+ open (path, O_WRONLY | O_CREAT | O_TRUNC, o_mode)
+ * so any previous zip-archive will be overwritten unconditionally and
+ * EEXIST errors from => mkdir(2) are suppressed. (fixme: delete the
+ * given subtree? like suggested by O_TRUNC? not done so far!)
+ */
+ZZIP_DIR *
+zzip_dir_creat(zzip_char_t * name, int o_mode)
+{
+ return zzip_dir_creat_ext_io(name, o_mode, 0, 0);
+}
+
+/** => zzip_dir_creat
+ *
+ * If the third argument "ext" has another special meaning here, as it
+ * is used to ensure that a given zip-file is created with the first entry
+ * of the ext-list appended as an extension unless the file-path already
+ * ends with a file-extension registered in the list. Therefore {"",0}
+ * matches all files and creates them as zip-archives under the given
+ * nonmodified name. (Some magic here? If the path ends in the path
+ * separator then make a real directory even in the presence of ext-list?)
+ *
+ * This function is not yet implemented, check for #def ZZIP_NO_CREAT
+ * Write-support will extend => zzip_closedir with semantics to finalize the
+ * zip-archive by writing the zip-trailer and closing the archive file.
+ */
+ZZIP_DIR *
+zzip_dir_creat_ext_io(zzip_char_t * name, int o_mode,
+ zzip_strings_t * ext, zzip_plugin_io_t io)
+{
+ if (! io)
+ io = zzip_get_default_io();
+
+ if (io != zzip_get_default_io())
+ {
+ /* the current io-structure does not contain a "write" entry,
+ * and therefore this parameter is useless. Anyone to expect
+ * some behavior should be warned, so here we let the function
+ * fail bluntly - and leaving the recovery to the application
+ */
+ errno = EINVAL;
+ return 0;
+ }
+
+
+ if (! _ZZIP_TRY)
+ {
+ /* not implemented - however, we respect that a null argument to
+ * zzip_mkdir and zzip_creat works, so we silently still do the mkdir
+ */
+ if (! _zzip_mkdir(name, o_mode) || errno == EEXIST)
+ errno = EROFS;
+ return 0;
+ } else
+ {
+# define MAX_EXT_LEN 10
+ ZZIP_DIR *dir = zzip_dir_alloc(ext);
+ int name_len = strlen(name);
+ dir->realname = malloc(name_len + MAX_EXT_LEN);
+ if (! dir->realname)
+ goto error;
+
+ memcpy(dir->realname, name, name_len + 1);
+ ___ int fd =
+ __zzip_try_open(dir->realname, O_EXCL | O_TRUNC | O_WRONLY, ext,
+ io);
+ if (fd != -1)
+ { dir->fd = fd; return dir; }
+
+ ___ zzip_strings_t *exx = ext;
+ int exx_len;
+ for (; *exx; exx++)
+ {
+ if ((exx_len = strlen(*exx) + 1) <= name_len &&
+ ! memcmp(dir->realname + (name_len - exx_len), *exx, exx_len))
+ break; /* keep unmodified */
+ exx++;
+ if (*exx)
+ continue;
+
+ if (! (exx_len = strlen(*exx)) || exx_len >= MAX_EXT_LEN)
+ break;
+ memcpy(dir->realname + name_len, exx, exx_len); /* append! */
+ }
+ ____;
+ fd = (io->fd.open)(dir->realname, O_CREAT | O_TRUNC | O_WRONLY, o_mode);
+ dir->realname[name_len] = '\0'; /* keep ummodified */
+ if (fd != -1)
+ { dir->fd = fd; return dir; }
+ error:
+ zzip_dir_free(dir);
+ return 0;
+ ____;
+ }
+}
+
+/** create a new archive area for writing
+ *
+ * This function will create a new archive area. This may either be a
+ * a new zip archive or a new directory in the filesystem. The returned
+ * parameter is a new "zzip dir" handle that should be saved to a variable
+ * so it can be used a base argument for => zzip_file_mkdir and
+ * => zzip_file_creat calls. The returned handle wraps both possibilities,
+ * it can be representing a zip central directory that must be
+ * saved to disk using => zzip_closedir or it is just a handle for the
+ * name of the real directory that still must be run through
+ * => zzip_closedir to release the wrapper around the directory name.
+ *
+ * The magic is pushed through the o_mode argument. Using a mode that
+ * has no group-write bit set (S_IWGRP = 0040) then the file is
+ * created as a zip directory. Note that this is unabridged of any
+ * umask value in the system where the argument to this function could
+ * be 0775 but with an umask of 0755 it turns out as 0755 for a real
+ * directory. Using 0755 directly would not create it as a real directory
+ * but as a zip archive handle.
+ *
+ * This function is not yet implemented, check for #def ZZIP_NO_CREAT
+ * Write-support will extend => zzip_closedir with semantics to finalize the
+ * zip-archive by writing the zip-trailer and closing the archive file.
+ *
+ * Returns null on error and sets errno. Remember, according to posix
+ * the => creat(2) call is equivalent to
+ open (path, O_WRONLY | O_CREAT | O_TRUNC, o_mode)
+ * so any previous zip-archive will be overwritten unconditionally and
+ * EEXIST errors from => mkdir(2) are suppressed. (fixme: delete the
+ * given subtree? like suggested by O_TRUNC? not done so far!)
+ */
+ZZIP_DIR *
+zzip_createdir(zzip_char_t * name, int o_mode)
+{
+ if (o_mode & S_IWGRP)
+ {
+ if (-1 == _zzip_mkdir(name, o_mode) && errno != EEXIST) /* fail */
+ return 0;
+ return zzip_opendir(name);
+ } else
+ return zzip_dir_creat(name, o_mode);
+}
+
+/** => zzip_file_creat also: mkdir(2), creat(2), zzip_dir_creat
+ *
+ * This function has an additional primary argument over the posix
+ * mkdir(2) - if it is null then this function behaves just like
+ * posix mkdir(2). The zzip_dir argument can be set to the result
+ * of a => zzip_createdir which allows for some magic that the
+ * given directory name is created as an entry in the zip archive.
+ *
+ * If the given dir name argument is not within the basepath of
+ * the zip central directory then a real directory is created.
+ * Any EEXIST errors are not suppressed unlike with => zzip_createdir
+ *
+ * Standard usage accepts a global/threaded/modular ZZIP_DIR pointer
+ * for all zip archive operations like in:
+ ZZIP_DIR* zip = zzip_createdir (sysconfpath, 0755, zip);
+ zzip_file_mkdir (zip, filepath[i], 0755);
+ ZZIP_FILE* file = zzip_file_creat (zip, filename[i], 0644);
+ zzip_write (file, buf, len);
+ zzip_close (file); file = 0;
+ zzip_closedir (zip); zip = 0;
+ *
+ * compare with => zzip_mkdir inline macro which allows to
+ * collapse the examples script to
+ #define zzip_savefile myproject_saveconfig
+ #include <zzip/zzip.h>
+ ZZIP_DIR* zzip_savefile = zzip_createdir (sysconfpath, 0755);
+ zzip_mkdir (filepath[i], 0755);
+ ZZIP_FILE* file = zzip_creat(filepath[i], 0644);
+ zzip_write (file, buf, len);
+ zzip_close (file); file = 0;
+ zzip_closedir (zip_savefile);
+ */
+int
+zzip_file_mkdir(ZZIP_DIR * dir, zzip_char_t * name, int o_mode)
+{
+ if (! dir)
+ return _zzip_mkdir(name, o_mode);
+
+ if (! _ZZIP_TRY)
+ { /* not implemented */
+ errno = EROFS;
+ return -1;
+ } else
+ {
+ errno = EROFS;
+ return -1;
+ }
+}
+
+/** start next file entry in a zip archive
+ *
+ * This function will create a new file within a zzip archive, the
+ * one given as the primary argument and additionally to the posix
+ * creat(2) - just like zzip_mkdir has an additional argument over
+ * the posix mkdir(2) spec. For this function the primary parameter
+ * can be null as well thereby creating a real file instead of a new
+ * one inside the zip-archive otherwise given. If the primary parameter is
+ * not null but wraps a real directory then all new files are also real.
+ *
+ * This function is not yet implemented, check for #def ZZIP_NO_CREAT
+ *
+ * Returns NULL on an error setting errno, and opening a file _within_
+ * a zip archive using O_RDONLY (and similar stuff) will surely lead to
+ * an error.
+ */
+ZZIP_FILE *
+zzip_file_creat(ZZIP_DIR * dir, zzip_char_t * name, int o_mode)
+{
+ if (! dir)
+ return zzip_open(name, o_mode);
+
+ if (! _ZZIP_TRY)
+ { /* not implemented */
+ errno = EROFS;
+ return 0;
+ } else
+ {
+ errno = EROFS;
+ return 0;
+ }
+}
+
+/** write to zzip storage also: write(2), zlib(3)
+ *
+ * This function will write data to a file descriptor. If the file
+ * descriptor represents a real file then it will be forwarded to
+ * call posix => write(2) directly. If it is a descriptor for a
+ * file within a zip directory then the data will be "deflated"
+ * using => zlib(3) and appended to the zip archive file.
+ */
+zzip_ssize_t
+zzip_write(ZZIP_FILE * file, const void *ptr, zzip_size_t len)
+{
+ if (zzip_file_real(file))
+ return write(zzip_realfd(file), ptr, len);
+ else
+ return zzip_file_write(file, ptr, len);
+}
+
+/** => zzip_write also: zzip_file_creat
+ *
+ * This function will write data to a file descriptor inside a zip
+ * archive. The data will be "deflated" using => zlib(3) compression
+ * and appended to the end of the zip archive file. Only one file
+ * descriptor may be open per zzip_dir archive handle (fifo-like).
+ *
+ * This function is not yet implemented, check for #def ZZIP_NO_CREAT
+ * It returns immediately -1 and sets errno=EROFS for indication.
+ */
+zzip_ssize_t
+zzip_file_write(ZZIP_FILE * file, const void *ptr, zzip_size_t len)
+{
+ if (! _ZZIP_TRY)
+ { /* not implemented */
+ errno = EROFS;
+ return -1;
+ } else
+ {
+ /* add calls to zlib here... */
+ errno = EROFS;
+ return -1;
+ }
+}
+
+/** => zzip_write
+ * This function is the stdc variant for writing and the arguments
+ * are forwarded to => zzip_write - the return value is floored to
+ * null as for STDC spec but there is no zzip_ferror call so far
+ * for the zziplib (later? is it actually needed?).
+ *
+ * This function is not yet implemented, check for #def ZZIP_NO_CREAT
+ * Write-support extends => zzip_close with semantics to write out a
+ * file-trailer to the zip-archive leaving a name/offset marker in
+ * the (still-open) ZZIP_DIR handle.
+ */
+zzip_size_t
+zzip_fwrite(const void *ptr, zzip_size_t len, zzip_size_t multiply,
+ ZZIP_FILE * file)
+{
+ zzip_ssize_t value = zzip_write(file, ptr, len * multiply);
+ if (value == -1)
+ value = 0;
+ return (zzip_size_t) value;
+}
+
+#if 0 /* pure documentation */
+
+/** create a zipped file/directory also: zzip_dir_creat, mkdir(2)
+ *
+ * This function creates a directory entry in the default zip-archive.
+ * If you did not specify a "#define zzip_savefile somevar"
+ * then the default zip-archive is null and all directories are
+ * created as real directories in the filesystem. This function is
+ * really a preprocessor macro or preferably an inline function
+ * around => zzip_file_mkdir, there is no such symbol generated
+ * into the library. The prototype is modelled after the posix
+ * => mkdir(2) call.
+ #ifndef zzip_savefile
+ #define zzip_savefile 0
+ #endif
+ #define zzip_mkdir(name,mode) \ -
+ zzip_file_mkdir(zzip_savefile,name,mode)
+ *
+ */
+int inline
+zzip_mkdir(zzip_char_t * name, int o_mode)
+{
+ return zzip_file_creat(zzip_savefile, name, mode);
+}
+#endif
+
+#if 0 /* pure documentation */
+
+/** => zzip_mkdir also: creat(2), zzip_start
+ *
+ * This function creates a file in the default zip-archive.
+ * If you did not specify a "#define zzip_savefile somevar"
+ * then the default zip-archive is null and all files are created
+ * as real files. This function is really a preprocessor macro
+ * or preferably an inline function around => zzip_file_creat,
+ * there is no such symbol generated into the library. The prototype
+ * is modelled after the posix => creat(2) call.
+ #ifndef zzip_savefile
+ #define zzip_savefile 0
+ #endif
+ #define zzip_creat(name,mode) \ -
+ zzip_file_creat(zzip_savefile,name,mode)
+ */
+ZZIP_FILE *inline
+zzip_creat(zzip_char_t * name, int o_mode)
+{
+ return zzip_file_creat(zzip_savefile, name, mode);
+}
+#endif
+
+
+#if 0 /* pure documentation */
+
+/** start writing to the magic zzip_savefile also: zzip_creat, zzip_write
+ *
+ * open a zip archive for writing via the magic zzip_savefile macro
+ * variable. The name and mode are given to => zzip_createdir and
+ * the result is stored into => zzip_savefile - if the => zzip_savefile
+ * did already have a zzip_dir handle then it is automatically
+ * finalized with => zzip_sync and the handle closed and the
+ * zzip_savefile variable reused for the new zip archive just started
+ * with this call. - This function is really a preprocessor macro
+ * or preferably an inline function around => zzip_dir_create, there
+ * is no such symbol generated into the library.
+ #ifndef zzip_savefile
+ #define zzip_savefile 0
+ #endif
+ #define zzip_start(name,mode,ext) \ -
+ { if (zzip_savefile) zzip_closedir(zzip_savefile); \ -
+ zzip_savefile = zzip_createdir(name,mode,ext); }
+ * This function returns null on error or a zzip_dir handle on
+ * success. It is perfectly okay to continue with a null in the
+ * zzip_savefile variable since it makes subsequent calls to
+ * => zzip_creat and => zzip_mkdir to run as => creat(2) / => mkdir(2)
+ * on the real filesystem.
+ */
+void inline
+zzip_mkfifo(zzip_char_t * name, int o_mode)
+{
+ if (zzip_savefile)
+ zzip_closedir(zzip_savefile);
+ zzip_savefile = zzip_createdir(name, o_mode);
+}
+#endif
+
+#if 0 /* pure documentation */
+
+/** => zzip_mkfifo also: zzip_closedir, sync(2)
+ *
+ * finalize a zip archive thereby writing the central directory to
+ * the end of the file. If it was a real directory then we do just
+ * nothing - even that the prototype of the call itself is modelled
+ * to be similar to the posix => sync(2) call. This function is
+ * really a preprocessor macro or preferably an inline function
+ * around => zzip_closedir, there is no such symbol generated
+ * into the library.
+ #ifndef zzip_savefile
+ #define zzip_savefile 0
+ #endif
+ #define zzip_sync(name,mode) \ -
+ { zzip_closedir(zzip_savefile); zzip_savefile = 0; }
+ *
+ */
+void inline
+zzip_sync(void)
+{
+ zzip_closedir(zzip_savefile);
+ zzip_savefile = 0;
+}
+#endif
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/write.h b/Build/source/libs/zziplib/zziplib-src/zzip/write.h
new file mode 100644
index 00000000000..cd4fea57651
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/write.h
@@ -0,0 +1,59 @@
+#ifndef _ZZIP_WRITE_H
+#define _ZZIP_WRITE_H
+/*
+ * Example code. write support is not yet implemented.
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#include <zzip/lib.h>
+
+#define ZZIP_NO_CREAT 1
+
+ZZIP_DIR* zzip_dir_creat_ext_io(zzip_char_t* name, int o_mode,
+ zzip_strings_t* ext, zzip_plugin_io_t io);
+ZZIP_DIR* zzip_dir_creat(zzip_char_t* name, int o_mode);
+int zzip_file_mkdir(ZZIP_DIR* dir, zzip_char_t* name, int o_mode);
+ZZIP_FILE* zzip_file_creat(ZZIP_DIR* dir, zzip_char_t* name, int o_mode);
+zzip_ssize_t zzip_file_write(ZZIP_FILE* file,
+ const void* ptr, zzip_size_t len);
+
+ZZIP_DIR* zzip_createdir(zzip_char_t* name, int o_mode);
+zzip_ssize_t zzip_write(ZZIP_FILE* file, const void* ptr, zzip_size_t len);
+zzip_size_t zzip_fwrite(const void* ptr, zzip_size_t len,
+ zzip_size_t multiply, ZZIP_FILE* file);
+#ifndef zzip_savefile
+#define zzip_savefile 0
+#define zzip_savefile_is_null
+#endif
+
+#ifdef _ZZIP_NO_INLINE
+#define zzip_mkdir(_name_,_mode_) \
+ zzip_file_mkdir((zzip_savefile),(_name_),(_mode_))
+#define zzip_creat(_name_,_mode_) \
+ zzip_file_creat((zzip_savefile),(_name_),(_mode_))
+#define zzip_sync() \
+ { zzip_closedir((zzip_savefile)); (zzip_savefile) = 0; }
+#define zzip_start(_name_,_mode_,_ext_) \
+ { if ((zzip_savefile)) zzip_closedir((zzip_savefile));
+ zzip_savefile = zzip_dir_creat(_name_, _mode_,_ext_); }
+
+#else
+
+_zzip_inline static int zzip_mkdir(zzip_char_t* name, int o_mode)
+{ return zzip_file_mkdir(zzip_savefile, name, o_mode); }
+_zzip_inline static ZZIP_FILE* zzip_creat(zzip_char_t* name, int o_mode)
+{ return zzip_file_creat(zzip_savefile, name, o_mode); }
+
+#ifndef zzip_savefile_is_null
+_zzip_inline static void zzip_sync(void)
+{ zzip_closedir(zzip_savefile); zzip_savefile = 0; }
+_zzip_inline static void zzip_mkfifo(zzip_char_t* name, int o_mode)
+{ if ((zzip_savefile)) zzip_closedir (zzip_savefile);
+ zzip_savefile = zzip_createdir(_name_,_mode_); }
+#else
+_zzip_inline static void zzip_sync(void) {}
+_zzip_inline static void zzip_mkfifo(zzip_char_t* name, int o_mode) {}
+#endif
+#endif /* _ZZIP_NO_INLINE */
+#endif /* _ZZIP_WRITE_H */
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/zip.c b/Build/source/libs/zziplib/zziplib-src/zzip/zip.c
new file mode 100644
index 00000000000..66a6e5058f8
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/zip.c
@@ -0,0 +1,896 @@
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ * Tomi Ollila <too@iki.fi>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
+
+#include <zzip/lib.h> /* archive handling */
+#include <zzip/file.h>
+#include <zzip/format.h>
+#include <zzip/fetch.h>
+
+#include <ctype.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#ifdef ZZIP_HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+
+#include <zzip/__mmap.h>
+#include <zzip/__debug.h>
+
+#define __sizeof(X) ((zzip_ssize_t)(sizeof(X)))
+
+#ifndef ZZIP_EASY
+/* per default, we use a little hack to correct bad z_rootseek parts */
+#define ZZIP_CORRECT_ROOTSEEK 1
+#endif
+
+#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ >= 4)
+# ifdef DEBUG
+# warning suppress a warning where the compiler should have optimized instead.
+# endif
+#define _255 254
+#else
+#define _255 255
+#endif
+
+#define ZZIP_DISK64_TRAILER 1
+
+#ifdef ZZIP_DISK64_TRAILER
+struct _disk_trailer
+{
+ void *zz_tail;
+ void *zz_for_correct_rootseek; // ZZIP_CORRECT_ROOTSEEK
+ zzip_off64_t zz_entries;
+ zzip_off64_t zz_finalentries;
+ zzip_off64_t zz_rootseek;
+ zzip_off64_t zz_rootsize;
+};
+#define _disk_trailer_entries(__p) ((__p)->zz_entries)
+#define _disk_trailer_localentries(__p) ((__p)->zz_entries)
+#define _disk_trailer_finalentries(__p) ((__p)->zz_entries)
+#define _disk_trailer_rootseek(__p) ((__p)->zz_rootseek)
+#define _disk_trailer_rootsize(__p) ((__p)->zz_rootsize)
+#define _disk_trailer_set_rootseek(__p,__v) ((__p)->rootseek = (__v))
+
+#else
+#define _disk_trailer zzip_disk_trailer
+#define _disk_trailer_entries zzip_disk_trailer_entries
+#define _disk_trailer_localentries zzip_disk_trailer_localentries
+#define _disk_trailer_finalentries zzip_disk_trailer_finalentries
+#define _disk_trailer_rootseek zzip_disk_trailer_rootseek
+#define _disk_trailer_rootsize zzip_disk_trailer_rootsize
+#define _disk_trailer_set_rootseek zzip_disk_trailer_set_rootseek
+#define __zzip_fetch_disk_trailer __zzip_find_disk_trailer
+#endif
+
+/* --------------------------- internals -------------------------------- */
+
+/* internal functions of zziplib, avoid at all cost, changes w/o warning.
+ * we do export them for debugging purpose and special external tools
+ * which know what they do and which can adapt from version to version
+ */
+
+int __zzip_fetch_disk_trailer(int fd, zzip_off_t filesize,
+ struct _disk_trailer *_zzip_restrict trailer,
+ zzip_plugin_io_t io);
+int __zzip_parse_root_directory(int fd,
+ struct _disk_trailer *trailer,
+ struct zzip_dir_hdr **hdr_return,
+ zzip_plugin_io_t io,
+ zzip_off_t filesize);
+
+_zzip_inline static char *__zzip_aligned4(char *p);
+
+/* ------------------------ harden routines ------------------------------ */
+
+#ifdef ZZIP_HARDEN
+
+/* internal.
+ * check for inconsistent values in trailer and prefer lower seek value
+ * - we fix values assuming the root directory was written at the end
+ * and it is just before the zip trailer. Therefore, ...
+ */
+_zzip_inline static void
+__fixup_rootseek(zzip_off_t offset_of_trailer, struct _disk_trailer *trailer)
+{
+ if (_disk_trailer_rootseek(trailer) >
+ offset_of_trailer - _disk_trailer_rootsize(trailer) &&
+ offset_of_trailer > _disk_trailer_rootsize(trailer))
+ {
+ register zzip_off_t offset;
+ offset = offset_of_trailer - _disk_trailer_rootsize(trailer);
+ _disk_trailer_set_rootseek(trailer, offset);
+ HINT2("new rootseek=%li", (long) _disk_trailer_rootseek(trailer));
+ }
+}
+
+#define __correct_rootseek(A,B,C)
+
+#elif defined ZZIP_CORRECT_ROOTSEEK
+
+/* store the seekvalue of the trailer into the "z_magic" field and with
+ * a 64bit off_t we overwrite z_disk/z_finaldisk as well. If you change
+ * anything in zziplib or dump the trailer structure then watch out that
+ * these are still unused, so that this code may still (ab)use those. */
+#define __fixup_rootseek(_offset_of_trailer, _trailer) \
+ *(zzip_off_t*)_trailer = _offset_of_trailer;
+#define __correct_rootseek( _u_rootseek, _u_rootsize, _trailer) \
+ if (_u_rootseek > *(zzip_off_t*)_trailer - _u_rootsize) \
+ _u_rootseek = *(zzip_off_t*)_trailer - _u_rootsize;
+#else
+#define __fixup_rootseek(A,B)
+#define __correct_rootseek(A,B,C)
+#endif
+
+
+#ifdef DEBUG
+_zzip_inline static void
+__debug_dir_hdr(struct zzip_dir_hdr *hdr)
+{
+ if (sizeof(struct zzip_dir_hdr) > sizeof(struct zzip_disk_entry))
+ { WARN1("internal sizeof-mismatch may break wreakage"); }
+ /* the internal directory structure is never bigger than the
+ * external zip central directory space had been beforehand
+ * (as long as the following assertion holds...)
+ */
+
+ if (((zzip_off_t) hdr) & 3)
+ {
+ NOTE1("this machine's malloc(3) returns sth. not u32-aligned");
+ }
+ /* we assume that if this machine's malloc has returned a non-aligned
+ * memory block, then it is actually safe to access misaligned data, and
+ * since it does only affect the first hdr it should not even bring about
+ * too much of that cpu's speed penalty
+ */
+}
+#else
+#define __debug_dir_hdr(X)
+#endif
+
+/* -------------------------- low-level interface -------------------------- */
+
+#if defined BUFSIZ
+#if BUFSIZ == 1024 || BUFSIZ == 512 || BUFSIZ == 256
+#define ZZIP_BUFSIZ BUFSIZ
+#endif
+#endif
+
+#ifndef ZZIP_BUFSIZ
+#define ZZIP_BUFSIZ 512
+
+/* #define ZZIP_BUFSIZ 64 / * for testing */
+#endif
+
+/** internal.
+ * This function is used by => zzip_file_open. It tries to find
+ * the zip's central directory info that is usually a few
+ * bytes off the end of the file.
+ */
+int
+__zzip_fetch_disk_trailer(int fd, zzip_off_t filesize,
+ struct _disk_trailer *_zzip_restrict trailer,
+ zzip_plugin_io_t io)
+{
+#ifdef DEBUG
+#define return(val) { e=val; HINT2("%s", zzip_strerror(e)); goto cleanup; }
+#else
+#define return(val) { e=val; goto cleanup; }
+#endif
+ register int e;
+
+#ifndef _LOWSTK
+ auto char buffer[2 * ZZIP_BUFSIZ];
+ char *buf = buffer;
+#else
+ char *buf = malloc(2 * ZZIP_BUFSIZ);
+#endif
+ zzip_off_t offset = 0;
+ zzip_ssize_t maplen = 0; /* mmap(),read(),getpagesize() use size_t !! */
+ char *fd_map = 0;
+
+ if (! trailer)
+ { return(EINVAL); }
+
+ if (filesize < __sizeof(struct zzip_disk_trailer))
+ { return(ZZIP_DIR_TOO_SHORT); }
+
+ if (! buf)
+ { return(ZZIP_OUTOFMEM); }
+
+ offset = filesize; /* a.k.a. old offset */
+ while (1) /* outer loop */
+ {
+ register unsigned char *mapped;
+
+ if (offset <= 0)
+ { return(ZZIP_DIR_EDH_MISSING); }
+
+ /* trailer cannot be farther away than 64K from fileend */
+ if (filesize - offset > 64 * 1024)
+ { return(ZZIP_DIR_EDH_MISSING); }
+
+ /* the new offset shall overlap with the area after the old offset! */
+ if (USE_MMAP && io->fd.sys)
+ {
+ zzip_off_t mapoff = offset;
+ {
+ zzip_ssize_t pagesize = _zzip_getpagesize(io->fd.sys);
+ if (pagesize < ZZIP_BUFSIZ)
+ goto non_mmap; /* an error? */
+ if (mapoff == filesize && filesize > pagesize)
+ mapoff -= pagesize;
+ if (mapoff < pagesize)
+ {
+ maplen = (zzip_ssize_t) mapoff + pagesize;
+ mapoff = 0;
+ } else
+ {
+ mapoff -= pagesize;
+ maplen = 2 * pagesize;
+ if ((zzip_ssize_t) mapoff & (pagesize - 1))
+ { /*only 1. run */
+ pagesize -= (zzip_ssize_t) mapoff & (pagesize - 1);
+ mapoff += pagesize;
+ maplen -= pagesize;
+ }
+ }
+ if (mapoff + maplen > filesize)
+ maplen = filesize - mapoff;
+ }
+
+ fd_map = _zzip_mmap(io->fd.sys, fd, mapoff, (zzip_size_t) maplen);
+ if (fd_map == MAP_FAILED)
+ goto non_mmap;
+ mapped = (unsigned char *) fd_map;
+ offset = mapoff; /* success */
+ HINT3("mapped *%p len=%li", fd_map, (long) maplen);
+ } else
+ {
+ non_mmap:
+ fd_map = 0; /* have no mmap */
+ {
+ zzip_off_t pagesize = ZZIP_BUFSIZ;
+ if (offset == filesize && filesize > pagesize)
+ offset -= pagesize;
+ if (offset < pagesize)
+ {
+ maplen = (zzip_ssize_t) offset + pagesize;
+ offset = 0;
+ } else
+ {
+ offset -= pagesize;
+ maplen = 2 * pagesize;
+ if ((zzip_ssize_t) offset & (pagesize - 1))
+ { /*on 1st run */
+ pagesize -= (zzip_ssize_t) offset & (pagesize - 1);
+ offset += pagesize;
+ maplen -= pagesize;
+ }
+ }
+ if (offset + maplen > filesize)
+ maplen = filesize - offset;
+ }
+
+ if (io->fd.seeks(fd, offset, SEEK_SET) < 0)
+ { return(ZZIP_DIR_SEEK); }
+ if (io->fd.read(fd, buf, (zzip_size_t) maplen) < maplen)
+ { return(ZZIP_DIR_READ); }
+ mapped = (unsigned char *) buf; /* success */
+ HINT5("offs=$%lx len=%li filesize=%li pagesize=%i",
+ (long) offset, (long) maplen, (long) filesize, ZZIP_BUFSIZ);
+ }
+
+ { /* now, check for the trailer-magic, hopefully near the end of file */
+ register unsigned char *end = mapped + maplen;
+ register unsigned char *tail;
+ for (tail = end - 1; (tail >= mapped); tail--)
+ {
+ if ((*tail == 'P') && /* quick pre-check for trailer magic */
+ end - tail >= __sizeof(struct zzip_disk_trailer) - 2 &&
+ zzip_disk_trailer_check_magic(tail))
+ {
+# ifndef ZZIP_DISK64_TRAILER
+ /* if the file-comment is not present, it happens
+ that the z_comment field often isn't either */
+ if (end - tail >= __sizeof(*trailer))
+ {
+ memcpy(trailer, tail, sizeof(*trailer));
+ } else
+ {
+ memcpy(trailer, tail, sizeof(*trailer) - 2);
+ trailer->z_comment[0] = 0;
+ trailer->z_comment[1] = 0;
+ }
+# else
+ struct zzip_disk_trailer *orig =
+ (struct zzip_disk_trailer *) tail;
+ trailer->zz_tail = tail;
+ trailer->zz_entries = zzip_disk_trailer_localentries(orig);
+ trailer->zz_finalentries =
+ zzip_disk_trailer_finalentries(orig);
+ trailer->zz_rootseek = zzip_disk_trailer_rootseek(orig);
+ trailer->zz_rootsize = zzip_disk_trailer_rootsize(orig);
+# endif
+ if (trailer->zz_rootseek < 0 || trailer->zz_rootsize < 0)
+ return(ZZIP_CORRUPTED); // forged value
+
+ __fixup_rootseek(offset + tail - mapped, trailer);
+ /*
+ * "extract data from files archived in a single zip file."
+ * So the file offsets must be within the current ZIP archive!
+ */
+ if (trailer->zz_rootseek >= filesize || (trailer->zz_rootseek + trailer->zz_rootsize) >= filesize)
+ return(ZZIP_CORRUPTED);
+ { return(0); }
+ } else if ((*tail == 'P') &&
+ end - tail >=
+ __sizeof(struct zzip_disk64_trailer) - 2
+ && zzip_disk64_trailer_check_magic(tail))
+ {
+# ifndef ZZIP_DISK64_TRAILER
+ return (ZZIP_DIR_LARGEFILE);
+# else
+ struct zzip_disk64_trailer *orig =
+ (struct zzip_disk64_trailer *) tail;
+ trailer->zz_tail = tail;
+ trailer->zz_entries =
+ zzip_disk64_trailer_localentries(orig);
+ trailer->zz_finalentries =
+ zzip_disk64_trailer_finalentries(orig);
+ trailer->zz_rootseek = zzip_disk64_trailer_rootseek(orig);
+ trailer->zz_rootsize = zzip_disk64_trailer_rootsize(orig);
+ if (trailer->zz_rootseek < 0 || trailer->zz_rootsize < 0)
+ return(ZZIP_CORRUPTED); // forged value
+ /*
+ * "extract data from files archived in a single zip file."
+ * So the file offsets must be within the current ZIP archive!
+ */
+ if (trailer->zz_rootseek >= filesize || (trailer->zz_rootseek + trailer->zz_rootsize) >= filesize)
+ return(ZZIP_CORRUPTED);
+ { return(0); }
+# endif
+ }
+ }
+ }
+
+ if (USE_MMAP && fd_map)
+ {
+ HINT3("unmap *%p len=%li", fd_map, (long) maplen);
+ _zzip_munmap(io->fd.sys, fd_map, (zzip_size_t) maplen);
+ fd_map = 0;
+ }
+ } /*outer loop */
+
+ cleanup:
+ if (USE_MMAP && fd_map)
+ {
+ HINT3("unmap *%p len=%li", fd_map, (long) maplen);
+ _zzip_munmap(io->fd.sys, fd_map, (zzip_size_t) maplen);
+ }
+# ifdef _LOWSTK
+ free(buf);
+# endif
+# undef return
+ return e;
+}
+
+/*
+ * making pointer alignments to values that can be handled as structures
+ * is tricky. We assume here that an align(4) is sufficient even for
+ * 64 bit machines. Note that binary operations are not usually allowed
+ * to pointer types but we do need only the lower bits in this implementation,
+ * so we can just cast the value to a long value.
+ */
+_zzip_inline static char *
+__zzip_aligned4(char *p)
+{
+#define aligned4 __zzip_aligned4
+ p += ((intptr_t) p) & 1;
+ p += ((intptr_t) p) & 2;
+ return p;
+}
+
+/** internal.
+ * This function is used by => zzip_file_open, it is usually called after
+ * => __zzip_find_disk_trailer. It will parse the zip's central directory
+ * information and create a zziplib private directory table in
+ * memory.
+ */
+int
+__zzip_parse_root_directory(int fd,
+ struct _disk_trailer *trailer,
+ struct zzip_dir_hdr **hdr_return,
+ zzip_plugin_io_t io,
+ zzip_off_t filesize)
+{
+ auto struct zzip_disk_entry dirent;
+ struct zzip_dir_hdr *hdr;
+ struct zzip_dir_hdr *hdr0;
+ uint16_t *p_reclen = 0;
+ zzip_off64_t entries;
+ zzip_off64_t zz_offset; /* offset from start of root directory */
+ char *fd_map = 0;
+ zzip_off64_t zz_fd_gap = 0;
+ zzip_off64_t zz_entries = _disk_trailer_localentries(trailer);
+ zzip_off64_t zz_rootsize = _disk_trailer_rootsize(trailer);
+ zzip_off64_t zz_rootseek = _disk_trailer_rootseek(trailer);
+ __correct_rootseek(zz_rootseek, zz_rootsize, trailer);
+
+ if (zz_entries <= 0 || zz_rootsize < 0 ||
+ zz_rootseek < 0 || zz_rootseek >= filesize)
+ return ZZIP_CORRUPTED;
+
+ hdr0 = (struct zzip_dir_hdr *) malloc(zz_rootsize);
+ if (! hdr0)
+ return ZZIP_DIRSIZE;
+ hdr = hdr0;
+ __debug_dir_hdr(hdr);
+
+ if (USE_MMAP && io->fd.sys)
+ {
+ zz_fd_gap = zz_rootseek & (_zzip_getpagesize(io->fd.sys) - 1);
+ HINT4(" fd_gap=%ld, mapseek=0x%lx, maplen=%ld", (long) (zz_fd_gap),
+ (long) (zz_rootseek - zz_fd_gap),
+ (long) (zz_rootsize + zz_fd_gap));
+ fd_map =
+ _zzip_mmap(io->fd.sys, fd, zz_rootseek - zz_fd_gap,
+ zz_rootsize + zz_fd_gap);
+ /* if mmap failed we will fallback to seek/read mode */
+ if (fd_map == MAP_FAILED)
+ {
+ NOTE2("map failed: %s", strerror(errno));
+ fd_map = 0;
+ } else
+ {
+ HINT3("mapped *%p len=%li", fd_map,
+ (long) (zz_rootsize + zz_fd_gap));
+ }
+ }
+
+ for (entries=0, zz_offset=0; ; entries++)
+ {
+ register struct zzip_disk_entry *d;
+ uint16_t u_extras, u_comment, u_namlen;
+
+# ifndef ZZIP_ALLOW_MODULO_ENTRIES
+ if (entries >= zz_entries) {
+ if (zz_offset + 256 < zz_rootsize) {
+ FAIL4("%li's entry is long before the end of directory - enable modulo_entries? (O:%li R:%li)",
+ (long) entries, (long) (zz_offset), (long) zz_rootsize);
+ }
+ break;
+ }
+# endif
+
+ if (fd_map)
+ {
+ d = (void*)(fd_map+zz_fd_gap+zz_offset); /* fd_map+fd_gap==u_rootseek */
+ } else
+ {
+ if (io->fd.seeks(fd, zz_rootseek + zz_offset, SEEK_SET) < 0)
+ {
+ free(hdr0);
+ return ZZIP_DIR_SEEK;
+ }
+ if (io->fd.read(fd, &dirent, sizeof(dirent)) < __sizeof(dirent))
+ {
+ free(hdr0);
+ return ZZIP_DIR_READ;
+ }
+ d = &dirent;
+ }
+
+ if ((zzip_off64_t) (zz_offset + sizeof(*d)) > zz_rootsize ||
+ (zzip_off64_t) (zz_offset + sizeof(*d)) < 0)
+ {
+ FAIL4("%li's entry stretches beyond root directory (O:%li R:%li)",
+ (long) entries, (long) (zz_offset), (long) zz_rootsize);
+ break;
+ }
+
+ if (! zzip_disk_entry_check_magic(d)) {
+# ifndef ZZIP_ALLOW_MODULO_ENTRIES
+ FAIL4("%li's entry has no disk_entry magic indicator (O:%li R:%li)",
+ (long) entries, (long) (zz_offset), (long) zz_rootsize);
+# endif
+ break;
+ }
+
+# if 0 && defined DEBUG
+ zzip_debug_xbuf((unsigned char *) d, sizeof(*d) + 8);
+# endif
+
+ u_extras = zzip_disk_entry_get_extras(d);
+ u_comment = zzip_disk_entry_get_comment(d);
+ u_namlen = zzip_disk_entry_get_namlen(d);
+ HINT5("offset=0x%lx, size %ld, dirent *%p, hdr %p\n",
+ (long) (zz_offset + zz_rootseek), (long) zz_rootsize, d, hdr);
+
+ /* writes over the read buffer, Since the structure where data is
+ copied is smaller than the data in buffer this can be done.
+ It is important that the order of setting the fields is considered
+ when filling the structure, so that some data is not trashed in
+ first structure read.
+ at the end the whole copied list of structures is copied into
+ newly allocated buffer */
+ hdr->d_crc32 = zzip_disk_entry_get_crc32(d);
+ hdr->d_csize = zzip_disk_entry_get_csize(d);
+ hdr->d_usize = zzip_disk_entry_get_usize(d);
+ hdr->d_off = zzip_disk_entry_get_offset(d);
+ hdr->d_compr = zzip_disk_entry_get_compr(d);
+ if (hdr->d_compr > _255)
+ hdr->d_compr = 255;
+
+ if ((zzip_off64_t) (zz_offset + sizeof(*d) + u_namlen) > zz_rootsize ||
+ (zzip_off64_t) (zz_offset + sizeof(*d) + u_namlen) < 0)
+ {
+ FAIL4("%li's name stretches beyond root directory (O:%li N:%li)",
+ (long) entries, (long) (zz_offset), (long) (u_namlen));
+ break;
+ }
+
+ if (fd_map)
+ { memcpy(hdr->d_name, fd_map+zz_fd_gap + zz_offset+sizeof(*d), u_namlen); }
+ else
+ { io->fd.read(fd, hdr->d_name, u_namlen); }
+ hdr->d_name[u_namlen] = '\0';
+ hdr->d_namlen = u_namlen;
+
+ /* update offset by the total length of this entry -> next entry */
+ zz_offset += sizeof(*d) + u_namlen + u_extras + u_comment;
+
+ if (zz_offset > zz_rootsize)
+ {
+ FAIL3("%li's entry stretches beyond root directory (O:%li)",
+ (long) entries, (long) (zz_offset));
+ entries ++;
+ break;
+ }
+
+ HINT5("file %ld { compr=%d crc32=$%x offset=%d",
+ (long) entries, hdr->d_compr, hdr->d_crc32, hdr->d_off);
+ HINT5("csize=%d usize=%d namlen=%d extras=%d",
+ hdr->d_csize, hdr->d_usize, u_namlen, u_extras);
+ HINT5("comment=%d name='%s' %s <sizeof %d> } ",
+ u_comment, hdr->d_name, "", (int) sizeof(*d));
+
+ p_reclen = &hdr->d_reclen;
+
+ {
+ register char *p = (char *) hdr;
+ register char *q = aligned4(p + sizeof(*hdr) + u_namlen + 1);
+ *p_reclen = (uint16_t) (q - p);
+ hdr = (struct zzip_dir_hdr *) q;
+ }
+ } /*for */
+
+ if (USE_MMAP && fd_map)
+ {
+ HINT3("unmap *%p len=%li", fd_map, (long) (zz_rootsize + zz_fd_gap));
+ _zzip_munmap(io->fd.sys, fd_map, zz_rootsize + zz_fd_gap);
+ }
+
+ if (p_reclen)
+ {
+ *p_reclen = 0; /* mark end of list */
+
+ if (hdr_return)
+ *hdr_return = hdr0;
+ else
+ {
+ /* If it is not assigned to *hdr_return, it will never be free()'d */
+ free(hdr0);
+ }
+ } /* else zero (sane) entries */
+ else
+ free(hdr0);
+# ifndef ZZIP_ALLOW_MODULO_ENTRIES
+ return (entries != zz_entries) ? ZZIP_CORRUPTED : 0;
+# else
+ return ((entries & (unsigned)0xFFFF) != zz_entries) ? ZZIP_CORRUPTED : 0;
+# endif
+}
+
+/* ------------------------- high-level interface ------------------------- */
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+static zzip_strings_t *
+zzip_get_default_ext(void)
+{
+ static zzip_strings_t ext[] = {
+ /* *INDENT-OFF* */
+ ".zip", ".ZIP", /* common extension */
+# ifdef ZZIP_USE_ZIPLIKES
+ ".pk3", ".PK3", /* ID Software's Quake3 zipfiles */
+ ".jar", ".JAR", /* Java zipfiles */
+# endif
+ /* *INDENT-ON* */
+ 0
+ };
+
+ return ext;
+}
+
+/** start usage. also: zzip_dir_free
+ * This function allocates a new ZZIP_DIR handle and do basic
+ * initializations before usage by => zzip_dir_fdopen
+ * => zzip_dir_open => zzip_file_open or through
+ * => zzip_open
+ * (ext==null flags uses { ".zip" , ".ZIP" } )
+ * (io ==null flags use of posix io defaults)
+ */
+ZZIP_DIR *
+zzip_dir_alloc_ext_io(zzip_strings_t * ext, const zzip_plugin_io_t io)
+{
+ ZZIP_DIR *dir;
+ if ((dir = (ZZIP_DIR *) calloc(1, sizeof(*dir))) == NULL)
+ return 0;
+
+ /* dir->fileext is currently unused - so what, still initialize it */
+ dir->fileext = ext ? ext : zzip_get_default_ext();
+ dir->io = io ? io : zzip_get_default_io();
+ return dir;
+}
+
+/** => zzip_dir_alloc_ext_io
+ * This function is obsolete - it was generally used for implementation
+ * and exported to let other code build on it. It is now advised to
+ * use => zzip_dir_alloc_ext_io now on explicitly, just set that second
+ * argument to zero to achieve the same functionality as the old style.
+ */
+ZZIP_DIR *
+zzip_dir_alloc(zzip_strings_t * fileext)
+{
+ return zzip_dir_alloc_ext_io(fileext, 0);
+}
+
+/** also: zzip_dir_alloc_ext_io
+ * This function will free the zzip_dir handle unless there are still
+ * zzip_files attached (that may use its cache buffer).
+ * This is the inverse of => zzip_dir_alloc , and both
+ * are helper functions used implicitly in other zzipcalls
+ * e.g. => zzip_dir_close = zzip_close
+ *
+ * returns zero on success
+ * returns the refcount when files are attached.
+ */
+int
+zzip_dir_free(ZZIP_DIR * dir)
+{
+ if (dir->refcount)
+ return (dir->refcount); /* still open files attached */
+
+ if (dir->fd >= 0)
+ dir->io->fd.close(dir->fd);
+ if (dir->hdr0)
+ free(dir->hdr0);
+ if (dir->cache.fp)
+ free(dir->cache.fp);
+ if (dir->cache.buf32k)
+ free(dir->cache.buf32k);
+ if (dir->realname)
+ free(dir->realname);
+ free(dir);
+ return 0;
+}
+
+/** => zzip_dir_free
+ * It will also => free(2) the => ZZIP_DIR-handle given.
+ * the counterpart for => zzip_dir_open
+ * see also => zzip_dir_free
+ */
+int
+zzip_dir_close(ZZIP_DIR * dir)
+{
+ dir->refcount &= ~0x10000000; /* explicit dir close */
+ return zzip_dir_free(dir);
+}
+
+/** fd reopen.
+ * This function is used by the => zzip_dir_open and zzip_opendir(2) call.
+ * Opens the zip-archive as specified with the fd which points to an
+ * already openend file. This function then search and parse
+ * the zip's central directory.
+ *
+ * NOTE: refcount is zero, so an _open/_close pair will also delete
+ * this _dirhandle
+ */
+ZZIP_DIR *
+zzip_dir_fdopen(int fd, zzip_error_t * errcode_p)
+{
+ return zzip_dir_fdopen_ext_io(fd, errcode_p, 0, 0);
+}
+
+static zzip_error_t __zzip_dir_parse(ZZIP_DIR * dir); /* forward */
+
+/** => zzip_dir_fdopen
+ * this function uses explicit ext and io instead of the internal
+ * defaults, setting these to zero is equivalent to => zzip_dir_fdopen
+ */
+ZZIP_DIR *
+zzip_dir_fdopen_ext_io(int fd, zzip_error_t * errcode_p,
+ zzip_strings_t * ext, const zzip_plugin_io_t io)
+{
+ zzip_error_t rv;
+ ZZIP_DIR *dir;
+
+ if ((dir = zzip_dir_alloc_ext_io(ext, io)) == NULL)
+ { rv = ZZIP_OUTOFMEM; goto error; }
+
+ dir->fd = fd;
+ if ((rv = __zzip_dir_parse(dir)))
+ goto error;
+
+ dir->hdr = dir->hdr0;
+ dir->refcount |= 0x10000000;
+
+ if (errcode_p)
+ *errcode_p = rv;
+ return dir;
+ error:
+ if (dir)
+ zzip_dir_free(dir);
+ if (errcode_p)
+ *errcode_p = rv;
+ return NULL;
+}
+
+static zzip_error_t
+__zzip_dir_parse(ZZIP_DIR * dir)
+{
+ zzip_error_t rv;
+ zzip_off_t filesize;
+ struct _disk_trailer trailer;
+ /* if (! dir || dir->fd < 0)
+ * { rv = EINVAL; goto error; }
+ */
+
+ HINT2("------------------ fd=%i", (int) dir->fd);
+ if ((filesize = dir->io->fd.filesize(dir->fd)) < 0)
+ { rv = ZZIP_DIR_STAT; goto error; }
+
+ HINT2("------------------ filesize=%ld", (long) filesize);
+ if ((rv = __zzip_fetch_disk_trailer(dir->fd, filesize, &trailer,
+ dir->io)) != 0)
+ { goto error; }
+
+ HINT5("directory = { entries= %ld/%ld, size= %ld, seek= %ld } ",
+ (long) _disk_trailer_localentries(&trailer),
+ (long) _disk_trailer_finalentries(&trailer),
+ (long) _disk_trailer_rootsize(&trailer),
+ (long) _disk_trailer_rootseek(&trailer));
+
+ if ((rv = __zzip_parse_root_directory(dir->fd, &trailer, &dir->hdr0,
+ dir->io, filesize)) != 0)
+ { goto error; }
+ error:
+ return rv;
+}
+
+/** internal.
+ * This function will attach any of the .zip extensions then
+ * trying to open it the with => open(2). This is a helper
+ * function for => zzip_dir_open, => zzip_opendir and => zzip_open.
+ *
+ * This function returns a new system file handle or -1 on error.
+ * On error this function leaves the errno(3) of the underlying
+ * open(2) call on the last file.
+ */
+int
+__zzip_try_open(zzip_char_t * filename, int filemode,
+ zzip_strings_t * ext, zzip_plugin_io_t io)
+{
+ auto char file[PATH_MAX];
+ int fd;
+ zzip_size_t len = strlen(filename);
+
+ if (len + 4 >= PATH_MAX)
+ { errno = ENAMETOOLONG; return -1; }
+ memcpy(file, filename, len + 1);
+
+ if (! io)
+ io = zzip_get_default_io();
+ if (! ext)
+ ext = zzip_get_default_ext();
+
+ for (; *ext; ++ext)
+ {
+ strcpy(file + len, *ext);
+ fd = (io->fd.open)(file, filemode);
+ if (fd != -1)
+ return fd;
+ }
+ return -1;
+}
+
+/** open zip-archive.
+ * This function opens the given zip-archive (if available).
+ * The two ext_io arguments will default to use posix io and
+ * a set of default fileext that can atleast add .zip ext itself.
+ */
+ZZIP_DIR *
+zzip_dir_open(zzip_char_t * filename, zzip_error_t * e)
+{
+ return zzip_dir_open_ext_io(filename, e, 0, 0);
+}
+
+/** => zzip_dir_open
+ * this function uses explicit ext and io instead of the internal
+ * defaults. Setting these to zero is equivalent to => zzip_dir_open
+ * Note that the referenced ext_io plugin handlers structure must be
+ * static as it is not copied to the returned ZZIP_DIR structure.
+ */
+ZZIP_DIR *
+zzip_dir_open_ext_io(zzip_char_t * filename, zzip_error_t * e,
+ zzip_strings_t * ext, zzip_plugin_io_t io)
+{
+ int fd;
+
+ if (! io)
+ io = zzip_get_default_io();
+ if (! ext)
+ ext = zzip_get_default_ext();
+
+ fd = (io->fd.open)(filename, O_RDONLY | O_BINARY);
+ if (fd != -1)
+ {
+ return zzip_dir_fdopen_ext_io(fd, e, ext, io);
+ } else
+ {
+ fd = __zzip_try_open(filename, O_RDONLY | O_BINARY, ext, io);
+ if (fd != -1)
+ {
+ return zzip_dir_fdopen_ext_io(fd, e, ext, io);
+ } else
+ {
+ if (e)
+ { *e = ZZIP_DIR_OPEN; }
+ return 0;
+ }
+ }
+}
+
+/** => zzip_dir_open
+ * fills the dirent-argument with the values and
+ * increments the read-pointer of the dir-argument.
+ *
+ * returns 0 if there no entry (anymore).
+ */
+int
+zzip_dir_read(ZZIP_DIR * dir, ZZIP_DIRENT * d)
+{
+ if (! dir || ! dir->hdr || ! d)
+ return 0;
+
+ d->d_compr = dir->hdr->d_compr;
+ d->d_csize = dir->hdr->d_csize;
+ d->st_size = dir->hdr->d_usize;
+ d->d_name = dir->hdr->d_name;
+
+ if (! dir->hdr->d_reclen)
+ {
+ dir->hdr = 0;
+ } else
+ {
+ dir->hdr = (struct zzip_dir_hdr *)
+ ((char *) dir->hdr + dir->hdr->d_reclen);
+ }
+
+ return 1;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/zzip.h b/Build/source/libs/zziplib/zziplib-src/zzip/zzip.h
new file mode 100644
index 00000000000..3941acc7011
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/zzip.h
@@ -0,0 +1,263 @@
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ * Tomi Ollila <Tomi.Ollila@iki.fi>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LPGL,MPL)
+ *
+ * if you see "unknown symbol" errors, check first that `-I ..` is part of
+ * your compiler options - a special hint to VC/IDE users who tend to make up
+ * their own workspace files. All includes look like #include <zzip|*.h>, so
+ * you need to add an include path to the dir containing (!!) the ./zzip/ dir
+ */
+
+#ifndef _ZZIP_ZZIP_H /* zziplib.h */
+#define _ZZIP_ZZIP_H
+
+#include <zzip/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* the zzip_error_t is also used to pass back ZLIB errors... */
+#define ZZIP_ERROR -4096
+
+typedef enum
+{
+ ZZIP_NO_ERROR = 0, /* no error, may be used if user sets it. */
+ ZZIP_OUTOFMEM = ZZIP_ERROR-20, /* out of memory */
+ ZZIP_DIR_OPEN = ZZIP_ERROR-21, /* failed to open zipfile, see errno for details */
+ ZZIP_DIR_STAT = ZZIP_ERROR-22, /* failed to fstat zipfile, see errno for details */
+ ZZIP_DIR_SEEK = ZZIP_ERROR-23, /* failed to lseek zipfile, see errno for details */
+ ZZIP_DIR_READ = ZZIP_ERROR-24, /* failed to read zipfile, see errno for details */
+ ZZIP_DIR_TOO_SHORT = ZZIP_ERROR-25,
+ ZZIP_DIR_EDH_MISSING = ZZIP_ERROR-26,
+ ZZIP_DIRSIZE = ZZIP_ERROR-27,
+ ZZIP_ENOENT = ZZIP_ERROR-28,
+ ZZIP_UNSUPP_COMPR = ZZIP_ERROR-29,
+ ZZIP_CORRUPTED = ZZIP_ERROR-31,
+ ZZIP_UNDEF = ZZIP_ERROR-32,
+ ZZIP_DIR_LARGEFILE = ZZIP_ERROR-33
+} zzip_error_t;
+
+/*
+ * zzip_open flags.
+ */
+#define ZZIP_CASEINSENSITIVE O_APPEND /* do not use anymore. use CASLESS */
+#define ZZIP_IGNOREPATH O_TRUNC /* do not use anymore. use NOPATHS */
+#define ZZIP_EXTRAFLAGS (ZZIP_CASEINSENSITIVE|ZZIP_IGNOREPATH)
+
+/* zzip_open_ext_io o_modes flags : new style. use these from now on! */
+#define ZZIP_CASELESS (1<<12) /* ignore filename case inside zips */
+#define ZZIP_NOPATHS (1<<13) /* ignore subdir paths, just filename*/
+#define ZZIP_PREFERZIP (1<<14) /* try first zipped file, then real*/
+#define ZZIP_ONLYZIP (1<<16) /* try _only_ zipped file, skip real*/
+#define ZZIP_FACTORY (1<<17) /* old file handle is not closed */
+#define ZZIP_ALLOWREAL (1<<18) /* real files use default_io (magic) */
+#define ZZIP_THREADED (1<<19) /* try to be safe for multithreading */
+
+/*
+ * zzip largefile renames
+ */
+#ifdef ZZIP_LARGEFILE_RENAME
+#define zzip_telldir zzip_telldir64
+#define zzip_seekdir zzip_seekdir64
+#endif
+
+/*
+ * zzip typedefs
+ */
+/* zzip_strings_t ext[] = { ".zip", ".jar", ".pk3", 0 } */
+typedef char _zzip_const * _zzip_const zzip_strings_t;
+typedef char _zzip_const zzip_char_t;
+typedef struct zzip_dir ZZIP_DIR;
+typedef struct zzip_file ZZIP_FILE;
+typedef struct zzip_dirent ZZIP_DIRENT;
+typedef struct zzip_dirent ZZIP_STAT;
+
+struct zzip_dirent
+{
+ int d_compr; /* compression method */
+ int d_csize; /* compressed size */
+ int st_size; /* file size / decompressed size */
+ char * d_name; /* file name / strdupped name */
+};
+
+/*
+ * Getting error strings
+ * zzip/err.c
+ */
+_zzip_export /* error in _opendir : */
+zzip_char_t* zzip_strerror(int errcode);
+_zzip_export /* error in other functions : */
+zzip_char_t* zzip_strerror_of(ZZIP_DIR * dir);
+_zzip_export /* error mapped to errno.h defines : */
+int zzip_errno(int errcode);
+
+
+/*
+ * Functions to grab information from ZZIP_DIR/ZZIP_FILE structure
+ * (if ever needed)
+ * zzip/info.c
+ */
+_zzip_export
+int zzip_error(ZZIP_DIR * dir);
+_zzip_export
+void zzip_seterror(ZZIP_DIR * dir, int errcode);
+_zzip_export
+zzip_char_t* zzip_compr_str(int compr);
+
+_zzip_export
+ZZIP_DIR * zzip_dirhandle(ZZIP_FILE * fp);
+_zzip_export
+int zzip_dirfd(ZZIP_DIR * dir);
+_zzip_export
+int zzip_dir_real(ZZIP_DIR * dir);
+_zzip_export
+int zzip_file_real(ZZIP_FILE * fp);
+_zzip_export
+void* zzip_realdir(ZZIP_DIR * dir);
+_zzip_export
+int zzip_realfd(ZZIP_FILE * fp);
+
+/*
+ * zip handle management
+ * zzip/zip.c
+ */
+_zzip_export
+ZZIP_DIR * zzip_dir_alloc(zzip_strings_t* fileext);
+_zzip_export
+int zzip_dir_free(ZZIP_DIR *);
+
+/*
+ * Opening/closing a zip archive
+ * zzip-zip.c
+ */
+_zzip_export
+ZZIP_DIR * zzip_dir_fdopen(int fd, zzip_error_t * errcode_p);
+_zzip_export
+ZZIP_DIR * zzip_dir_open(zzip_char_t* filename, zzip_error_t * errcode_p);
+_zzip_export
+int zzip_dir_close(ZZIP_DIR * dir);
+_zzip_export
+int zzip_dir_read(ZZIP_DIR * dir, ZZIP_DIRENT * dirent);
+
+
+/*
+ * Scanning files in zip archive
+ * zzip/dir.c
+ * zzip/zip.c
+ */
+_zzip_export
+ZZIP_DIR * zzip_opendir(zzip_char_t* filename);
+_zzip_export
+int zzip_closedir(ZZIP_DIR * dir);
+_zzip_export
+ZZIP_DIRENT * zzip_readdir(ZZIP_DIR * dir);
+_zzip_export
+void zzip_rewinddir(ZZIP_DIR * dir);
+_zzip_export
+zzip_off_t zzip_telldir(ZZIP_DIR * dir);
+_zzip_export
+void zzip_seekdir(ZZIP_DIR * dir, zzip_off_t offset);
+
+/*
+ * 'opening', 'closing' and reading individual files in zip archive.
+ * zzip/file.c
+ */
+_zzip_export
+ZZIP_FILE * zzip_file_open(ZZIP_DIR * dir, zzip_char_t* name, int flags);
+_zzip_export
+int zzip_file_close(ZZIP_FILE * fp);
+_zzip_export
+zzip_ssize_t zzip_file_read(ZZIP_FILE * fp, void* buf, zzip_size_t len);
+
+_zzip_export
+ZZIP_FILE * zzip_open(zzip_char_t* name, int flags);
+_zzip_export
+int zzip_close(ZZIP_FILE * fp);
+_zzip_export
+zzip_ssize_t zzip_read(ZZIP_FILE * fp, void * buf, zzip_size_t len);
+
+/*
+ * the stdc variant to open/read/close files. - Take note of the freopen()
+ * call as it may reuse an existing preparsed copy of a zip central directory
+ */
+_zzip_export
+ZZIP_FILE* zzip_freopen(zzip_char_t* name, zzip_char_t* mode, ZZIP_FILE*);
+_zzip_export
+ZZIP_FILE* zzip_fopen(zzip_char_t* name, zzip_char_t* mode);
+_zzip_export
+zzip_size_t zzip_fread(void *ptr, zzip_size_t size, zzip_size_t nmemb,
+ ZZIP_FILE * file);
+_zzip_export
+int zzip_fclose(ZZIP_FILE * fp);
+
+/*
+ * seek and tell functions
+ */
+_zzip_export
+int zzip_rewind(ZZIP_FILE *fp);
+_zzip_export
+zzip_off_t zzip_seek(ZZIP_FILE * fp, zzip_off_t offset, int whence);
+_zzip_export
+zzip_off_t zzip_tell(ZZIP_FILE * fp);
+
+/*
+ * reading info of a single file
+ * zzip/stat.c
+ */
+_zzip_export
+int zzip_dir_stat(ZZIP_DIR * dir, zzip_char_t* name,
+ ZZIP_STAT * zs, int flags);
+_zzip_export
+int zzip_file_stat(ZZIP_FILE * fp, ZZIP_STAT * zs);
+_zzip_export
+int zzip_fstat(ZZIP_FILE * fp, ZZIP_STAT * zs);
+
+#ifdef ZZIP_LARGEFILE_RENAME
+#define zzip_open_shared_io zzip_open_shared_io64
+#define zzip_open_ext_io zzip_open_ext_io64
+#define zzip_opendir_ext_io zzip_opendir_ext_io64
+#define zzip_dir_open_ext_io zzip_dir_open_ext_io64
+#define zzip_plugin_io_t zzip_plugin_io64_t
+#endif
+
+/*
+ * all ext_io functions can be called with a default of ext/io == zero/zero
+ * which will default to a ".zip" extension and posix io of the system.
+ */
+typedef union _zzip_plugin_io _zzip_const * zzip_plugin_io_t;
+
+_zzip_export
+ZZIP_FILE * zzip_open_shared_io(ZZIP_FILE* stream,
+ zzip_char_t* name, int o_flags, int o_modes,
+ zzip_strings_t* ext, zzip_plugin_io_t io);
+
+_zzip_export
+ZZIP_FILE * zzip_open_ext_io(zzip_char_t* name, int o_flags, int o_modes,
+ zzip_strings_t* ext, zzip_plugin_io_t io);
+
+_zzip_export
+ZZIP_DIR * zzip_opendir_ext_io(zzip_char_t* name, int o_modes,
+ zzip_strings_t* ext, zzip_plugin_io_t io);
+
+_zzip_export
+ZZIP_DIR * zzip_dir_open_ext_io(zzip_char_t* filename,
+ zzip_error_t* errcode_p,
+ zzip_strings_t* ext, zzip_plugin_io_t io);
+
+/* zzip_file_open_ext_io => zzip_dir_open_ext_io + zzip_file_open */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ZZIPLIB_H */
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/zzip32.h b/Build/source/libs/zziplib/zziplib-src/zzip/zzip32.h
new file mode 100644
index 00000000000..e3461a95e5d
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/zzip32.h
@@ -0,0 +1,46 @@
+/*
+ * Author:
+ * Guido Draheim <guidod@gmx.de>
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ *
+ * The compat32 headers is targeted towards those poor souls who can
+ * not compile their application or library with _LARGEFILE_SOURCE but
+ * they may still need to access a libzzip compiled in largefile mode.
+ * In that case they can change back to calling these suffix32 functions
+ * which are ensured to use "long" as the parameter type - just as it used
+ * to be before off_t was defined as an alias for it.
+ */
+
+#ifndef _ZZIP_ZZIP32_H
+#define _ZZIP_ZZIP32_H
+
+#include <zzip/lib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Scanning files in zip archive.
+ * Implemented in zzip/dir.c
+ */
+_zzip_export
+long zzip_telldir32(ZZIP_DIR * dir);
+_zzip_export
+void zzip_seekdir32(ZZIP_DIR * dir, long offset);
+
+/*
+ * seek and tell functions.
+ * Implemented in zzip/file.c
+ */
+_zzip_export
+long zzip_seek32(ZZIP_FILE * fp, long offset, int whence);
+_zzip_export
+long zzip_tell32(ZZIP_FILE * fp);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/Build/source/libs/zziplib/zziplib-src/zzip/zziplib.wpj b/Build/source/libs/zziplib/zziplib-src/zzip/zziplib.wpj
new file mode 100755
index 00000000000..c73aab3de56
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzip/zziplib.wpj
@@ -0,0 +1,103 @@
+40
+projectIdent
+0
+VpeMain
+1
+WRect
+0
+0
+7680
+10240
+2
+MProject
+3
+MCommand
+0
+4
+MCommand
+0
+4
+5
+WFileName
+11
+zziplib.tgt
+6
+WFileName
+9
+zzcat.tgt
+7
+WFileName
+9
+zzdir.tgt
+8
+WFileName
+12
+zziptest.tgt
+9
+WVList
+4
+10
+VComponent
+11
+WRect
+0
+0
+5670
+4215
+0
+0
+12
+WFileName
+11
+zziplib.tgt
+0
+0
+13
+VComponent
+14
+WRect
+678
+665
+5670
+4215
+0
+0
+15
+WFileName
+9
+zzcat.tgt
+0
+0
+16
+VComponent
+17
+WRect
+1868
+1467
+5670
+4215
+0
+0
+18
+WFileName
+9
+zzdir.tgt
+0
+0
+19
+VComponent
+20
+WRect
+1356
+1348
+5670
+4215
+0
+0
+21
+WFileName
+12
+zziptest.tgt
+0
+0
+19
diff --git a/Build/source/libs/zziplib/zziplib-src/zzipback.sed b/Build/source/libs/zziplib/zziplib-src/zzipback.sed
new file mode 100644
index 00000000000..b3e5e768525
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzipback.sed
@@ -0,0 +1,19 @@
+s:<zzip/_config.h>:<zzip-config.h>:
+s:<zzip/_msvc.h>:<zzip-msvc.h>:
+s:<zzip/conf.h>:<zzip-conf.h>:
+s:<zzip/dir.h>:<zzip-dir.h>:
+s:<zzip/err.h>:<zzip-err.h>:
+s:<zzip/file.h>:<zzip-file.h>:
+s:<zzip/format.h>:<zzipformat.h>:
+s:<zzip/info.h>:<zzip-info.h>:
+s:<zzip/lib.h>:<zzip.h>:
+s:<zzip/zzip.h>:<zziplib.h>:
+s:<zzip/plugin.h>:<zzip-io.h>:
+s:<zzip/stat.h>:<zzip-stat.h>:
+s:<zzip/stdint.h>:<zzip-stdint.h>:
+s:<zzip/__debug.h>:"__debug.h":
+s:<zzip/__dirent.h>:"__dirent.h":
+s:<zzip/__hints.h>:"__hints.h":
+s:<zzip/__mmap.h>:"__mmap.h":
+s:<zzip/wrap.h>:"zzipwrap.h":
+/#inc/s:"wrap.h":"zzipwrap.h":
diff --git a/Build/source/libs/zziplib/zziplib-src/zziplib.spec b/Build/source/libs/zziplib/zziplib-src/zziplib.spec
new file mode 100644
index 00000000000..04b831c36d6
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zziplib.spec
@@ -0,0 +1,158 @@
+# norootforbuild
+Summary: ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API
+Name: zziplib
+Version: 0.13.71
+Release: 1
+License: LGPLv2.1+
+Group: System/Libraries
+URL: https://github.com/gdraheim/zziplib
+Vendor: Guido Draheim <guidod@gmx.de>
+Source0: https://github.com/gdraheim/zziplib/archive/v%{version}.tar.gz
+BuildRoot: /var/tmp/%{name}-%{version}-%{release}
+
+Distribution: Original
+Packager: Guido Draheim <guidod@gmx.de>
+Requires: zlib
+BuildRequires: zlib-devel
+BuildRequires: SDL-devel
+BuildRequires: zip
+
+Provides: libzzip0 = %version
+Provides: libzzip-0.so.10
+Provides: zziplib-lib010 = %version
+
+#Begin3
+# Author1: too@iki.fi (Tomi Ollila)
+# Author2: guidod@gmx.de (Guido Draheim)
+# Maintained-by: guidod@gmx.de (Guido Draheim)
+# Primary-Site: zziplib.sf.net
+# Keywords: zip zlib inflate archive gamedata
+# Platforms: zlib posix
+# Copying-Policy: Lesser GPL Version 2
+#End
+
+%package doc
+Summary: ZZipLib - Documentation Files
+Group: Development/Languages/C and C++
+BuildRequires: python
+# BuildRequires: xmlto
+PreReq: scrollkeeper
+
+%package devel
+Summary: ZZipLib - Development Files
+Group: Development/Languages/C and C++
+Requires: zziplib = %version
+Requires: pkgconfig
+
+%package SDL_rwops-devel
+Summary: ZZipLib - Development Files for SDL_rwops
+Group: Development/Languages/C and C++
+Requires: zziplib = %version
+Requires: pkgconfig
+BuildRequires: SDL-devel
+
+%description
+ : zziplib provides read access to zipped files in a zip-archive,
+ : using compression based solely on free algorithms provided by zlib.
+ zziplib provides an additional API to transparently access files
+ being either real files or zipped files with the same filepath argument.
+ This is handy to package many files being shared data into a single
+ zip file - as it is sometimes used with gamedata or script repositories.
+ The library itself is fully multithreaded, and it is namespace clean
+ using the zzip_ prefix for its exports and declarations.
+
+%description doc
+ : zziplib provides read access to zipped files in a zip-archive,
+ : using compression based solely on free algorithms provided by zlib.
+ these are the (html) docs, mostly generated actually.
+
+%description devel
+ : zziplib provides read access to zipped files in a zip-archive,
+ : using compression based solely on free algorithms provided by zlib.
+ these are the header files needed to develop programs using zziplib.
+ there are test binaries to hint usage of the library in user programs.
+
+%description SDL_rwops-devel
+ : zziplib provides read access to zipped files in a zip-archive,
+ : using compression based solely on free algorithms provided by zlib.
+ these are example headers and implementation along with a pkgconfig
+ script that allows to easily use zziplib through SDL_rwops calls.
+
+%prep
+#'
+%setup
+
+
+CFLAGS="$RPM_OPT_FLAGS" \
+sh configure --prefix=%{_prefix} \
+ --mandir=%{_mandir} \
+ --bindir=%{_bindir} \
+ --libdir=%{_libdir} \
+ --with-docdir=%{_docdir} \
+ --disable-static --with-pic \
+ --enable-sdl TIMEOUT=9
+%__make zzip64-setup
+
+%build
+%__make %{?jobs:-j%jobs}
+%__make %{?jobs:-j%jobs} zzip64-build
+%__make %{?jobs:-j%jobs} doc
+
+%check
+%__make check
+%__make test-sdl
+
+%install
+%__rm -rf %{buildroot}
+%__make zzip64-install DESTDIR=%{buildroot}
+%__make install DESTDIR=%{buildroot}
+%__make zzip32-postinstall DESTDIR=%{buildroot}
+%__make zzip-postinstall
+%__make install-doc DESTDIR=%{buildroot}
+%__make install-mans DESTDIR=%{buildroot}
+%__make install-sdl DESTDIR=%{buildroot}
+
+%clean
+%__rm -rf %{buildroot}
+
+%files
+ %defattr(-,root,root)
+ %{_libdir}/lib*.so.*
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%files doc
+ %defattr(-,root,root)
+ %{_datadir}/doc/*
+%dir %{_datadir}/omf/%{name}
+ %{_datadir}/omf/%{name}/*
+
+%post doc
+test ! -f %_bindir/scrollkeeper-update || %_bindir/scrollkeeper-update
+%postun doc
+test ! -f %_bindir/scrollkeeper-update || %_bindir/scrollkeeper-update
+
+%files devel
+ %defattr(-,root,root)
+%doc ChangeLog README TODO
+ %{_bindir}/*
+%dir %{_includedir}/zzip
+ %{_includedir}/zzip/*
+ %{_includedir}/*.h
+ %{_libdir}/lib*.so
+ %{_libdir}/lib*.a
+ %{_libdir}/lib*.la
+ %{_libdir}/pkgconfig/zzip*
+ %{_datadir}/aclocal/%{name}*.m4
+ %{_mandir}/man3/*
+
+%files SDL_rwops-devel
+ %defattr(-,root,root)
+ %{_libdir}/pkgconfig/SDL*zzip*
+%dir %{_includedir}/SDL_rwops_zzip
+ %{_includedir}/SDL_rwops_zzip/*
+
+%changelog
+* So Mar 11 2012 guidod <guidod@gmx.de> 0.13.62-1
+- next version
diff --git a/Build/source/libs/zziplib/zziplib-src/zzipwrap/CMakeLists.txt b/Build/source/libs/zziplib/zziplib-src/zzipwrap/CMakeLists.txt
new file mode 100644
index 00000000000..220d93b1211
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzipwrap/CMakeLists.txt
@@ -0,0 +1,97 @@
+cmake_minimum_required (VERSION 3.1)
+project(zzipwrap VERSION "0.13.71" LANGUAGES C)
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeScripts")
+
+include ( CheckIncludeFiles )
+include ( GNUInstallDirs )
+include ( FindPkgConfig )
+include ( JoinPaths )
+
+# options ########################################################
+option(BUILD_SHARED_LIBS "Build a shared library" ON)
+option(BUILD_STATIC_LIBS "Build the static library" OFF)
+option(BUILD_TESTS "Build test programs" OFF)
+option(MSVC_STATIC_RUNTIME "Build with static runtime libs (/MT)" ON)
+option(ZZIPLIBTOOL "Ensure binary compatibility with libtool" ON)
+
+check_include_files ( unistd.h ZZIP_HAVE_UNISTD_H )
+# set ( ZZIP_HAVE_ZLIB_H 1 )
+
+# Zlib library needed
+find_package ( ZLIB REQUIRED )
+pkg_search_module ( ZZIP zzip )
+
+set(RELNUM "${PROJECT_VERSION_MAJOR}")
+set(VERNUM "${PROJECT_VERSION_MINOR}")
+set(FIXNUM "0.${PROJECT_VERSION_PATCH}")
+# the "0." on FIXNUM is just for compatibility with automake's libtool.
+
+# targets ########################################################
+set(zzipwrap_SRCS
+ zzipwrap.c)
+
+set(libzzipwrap_SRCS
+ wrap.c)
+
+set(libzzipwrap_HDRS
+ wrap.h)
+
+add_library(libzzipwrap ${libzzipwrap_SRCS} )
+target_link_libraries(libzzipwrap libzzip ZLIB::ZLIB )
+target_include_directories(libzzipwrap PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+
+set_target_properties(libzzipwrap PROPERTIES OUTPUT_NAME "zzipwrap" RELEASE_POSTFIX "-${RELNUM}")
+SET_TARGET_PROPERTIES(libzzipwrap PROPERTIES VERSION ${VERNUM}.${FIXNUM} SOVERSION ${VERNUM})
+
+add_executable(zzipwrap ${zzipwrap_SRCS} )
+target_link_libraries(zzipwrap libzzipwrap )
+target_include_directories(zzipwrap PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
+
+if(UNIX)
+join_paths(libdir "\${prefix}" "${CMAKE_INSTALL_LIBDIR}")
+join_paths(includedir "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
+add_custom_command(OUTPUT zzipwrap.pc
+ COMMAND ${BASH} -c "echo 'prefix=${CMAKE_INSTALL_PREFIX}' > zzipwrap.pc"
+ COMMAND ${BASH} -c "echo 'libdir=${libdir}' >> zzipwrap.pc"
+ COMMAND ${BASH} -c "echo 'includedir=${includedir}' >> zzipwrap.pc"
+ COMMAND ${BASH} -c "echo '' >> zzipwrap.pc"
+ COMMAND ${BASH} -c "echo 'Name: ${PROJECT_NAME}' >> zzipwrap.pc"
+ COMMAND ${BASH} -c "echo 'Version: ${PROJECT_VERSION}' >> zzipwrap.pc"
+ COMMAND ${BASH} -c "echo 'Description: Callback Wrappers for ZZipLib' >> zzipwrap.pc"
+ COMMAND ${BASH} -c "echo 'Requires: zziplib' >> zzipwrap.pc"
+ COMMAND ${BASH} -c "echo 'Libs: -L\${libdir} -lzzipwrap' >> zzipwrap.pc"
+ COMMAND ${BASH} -c "echo 'Cflags: -I\${includedir}' >> zzipwrap.pc"
+ VERBATIM)
+add_custom_target(pkgconfigs ALL DEPENDS zzipwrap.pc)
+endif()
+
+# install ########################################################
+set(outdir ${CMAKE_CURRENT_BINARY_DIR})
+
+if(UNIX)
+install(FILES ${outdir}/zzipwrap.pc
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" )
+endif()
+
+install(FILES ${libzzipwrap_HDRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/zzip )
+install(TARGETS libzzipwrap
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+if(ZZIPLIBTOOL)
+ if(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG)
+ set(lib ${CMAKE_SHARED_LIBRARY_PREFIX})
+ set(dll ${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
+ get_target_property(libname libzzipwrap OUTPUT_NAME)
+ get_target_property(librelease libzzipwrap RELEASE_POSTFIX)
+ get_target_property(libversion libzzipwrap VERSION)
+ install(CODE "execute_process(COMMAND bash -c \"set -e
+ cd $DESTDIR/${libdir}
+ [ -f ${lib}${libname}${librelease}${dll}.${libversion} ] || exit 0
+ echo -n .. Installing: `pwd`
+ ln -svf ${lib}${libname}${librelease}${dll}.${libversion} ${lib}${libname}${dll}
+ \")")
+ endif()
+endif()
diff --git a/Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.am b/Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.am
new file mode 100644
index 00000000000..2c5b4719841
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.am
@@ -0,0 +1,51 @@
+AUTOMAKE_OPTIONS = 1.4 foreign
+AUTOTOOL_VERSION=autoconf-2.52 automake-1.5 libtool-1.4.2
+DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir)
+DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4
+
+noinst_PROGRAMS = zzipwrap
+lib_LTLIBRARIES = libzzipwrap.la
+zzipdir = ${includedir}/zzip
+zzip_HEADERS = $(libzzipwrap_la_headers)
+#
+VERSION_INFO=@VERSION_INFO@
+RELEASE_INFO=@RELEASE_INFO@
+THREAD_SAFE=@THREAD_SAFE@
+#
+
+libzzipwrap_la_SOURCES = \
+ wrap.c
+libzzipwrap_la_headers = \
+ wrap.h
+
+libzzipwrap_la_LDFLAGS= @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \
+ $(THREAD_SAFE)
+libzzipwrap_la_LIBADD= ../zzip/libzzip.la @RESOLVES@ -lz
+
+../zzip/libzzip.la : @top_srcdir@/zzip/*.c
+ (cd ../zzip && $(MAKE) `basename $@`)
+
+
+WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt
+
+EXTRA_DIST =
+CLEANFILES = $(WCC10_CLEAN) *.pc *.omf
+
+zzipwrap_LDFLAGS = @ZZIPLIB_LDFLAGS@
+zzipwrap_LDADD = libzzipwrap.la @RESOLVES@ ../zzip/libzzip.la -lz
+
+# ----------------------------------------------------------------------
+pkgconfigdir=$(libdir)/pkgconfig
+pkgconfig_HEADERS= zzipwrap.pc
+
+zzipwrap.pc : Makefile
+ @ echo "prefix=$(prefix)" >$@
+ @ echo "libdir=$(libdir)" >>$@
+ @ echo "includedir=$(includedir)" >>$@
+ @ echo " " >>$@
+ @ echo "Name: zzipwrap" >>$@
+ @ echo "Version: $(VERSION)" >>$@
+ @ echo "Description: Callback Wrappers for ZZipLib" >>$@
+ echo 'Requires: zziplib' >>$@
+ echo 'Libs: -L$${libdir} -lzzipwrap' >>$@
+ echo 'Cflags: -I$${includedir}' >>$@
diff --git a/Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.in b/Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.in
new file mode 100644
index 00000000000..95f869f27e4
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.in
@@ -0,0 +1,817 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+noinst_PROGRAMS = zzipwrap$(EXEEXT)
+subdir = zzipwrap
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
+ $(top_srcdir)/m4/ac_set_default_paths_system.m4 \
+ $(top_srcdir)/m4/ac_sys_largefile_sensitive.m4 \
+ $(top_srcdir)/m4/acx_restrict.m4 \
+ $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \
+ $(top_srcdir)/m4/ax_cflags_no_writable_strings.m4 \
+ $(top_srcdir)/m4/ax_cflags_strict_prototypes.m4 \
+ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
+ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
+ $(top_srcdir)/m4/ax_check_enable_debug.m4 \
+ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
+ $(top_srcdir)/m4/ax_expand_prefix.m4 \
+ $(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
+ $(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
+ $(top_srcdir)/m4/ax_pax_tar.m4 \
+ $(top_srcdir)/m4/ax_prefix_config_h.m4 \
+ $(top_srcdir)/m4/ax_set_version_info.m4 \
+ $(top_srcdir)/m4/ax_spec_file.m4 \
+ $(top_srcdir)/m4/ax_spec_package_version.m4 \
+ $(top_srcdir)/m4/ax_warning_default_aclocaldir.m4 \
+ $(top_srcdir)/m4/ax_warning_default_pkgconfig.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/patch_libtool_on_darwin_zsh_overquoting.m4 \
+ $(top_srcdir)/m4/patch_libtool_sys_lib_search_path_spec.m4 \
+ $(top_srcdir)/m4/patch_libtool_to_add_host_cc.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(pkgconfig_HEADERS) \
+ $(zzip_HEADERS) $(am__DIST_COMMON)
+mkinstalldirs = $(SHELL) $(top_srcdir)/uses/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+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)$(zzipdir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+libzzipwrap_la_DEPENDENCIES = ../zzip/libzzip.la
+am_libzzipwrap_la_OBJECTS = wrap.lo
+libzzipwrap_la_OBJECTS = $(am_libzzipwrap_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 =
+libzzipwrap_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libzzipwrap_la_LDFLAGS) $(LDFLAGS) -o \
+ $@
+PROGRAMS = $(noinst_PROGRAMS)
+zzipwrap_SOURCES = zzipwrap.c
+zzipwrap_OBJECTS = zzipwrap.$(OBJEXT)
+zzipwrap_DEPENDENCIES = libzzipwrap.la ../zzip/libzzip.la
+zzipwrap_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(zzipwrap_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+depcomp = $(SHELL) $(top_srcdir)/uses/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(libzzipwrap_la_SOURCES) zzipwrap.c
+DIST_SOURCES = $(libzzipwrap_la_SOURCES) zzipwrap.c
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+HEADERS = $(pkgconfig_HEADERS) $(zzip_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/uses/depcomp \
+ $(top_srcdir)/uses/mkinstalldirs
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+ASAN_CFLAGS = @ASAN_CFLAGS@
+ASAN_LIBS = @ASAN_LIBS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONFIG_FILES = @CONFIG_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4
+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@
+GNUTAR = @GNUTAR@
+GREP = @GREP@
+GTAR = @GTAR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LARGEFILE_CFLAGS = @LARGEFILE_CFLAGS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKZIP = @MKZIP@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PAX = @PAX@
+PAX_TAR_CREATE = @PAX_TAR_CREATE@
+PAX_TAR_EXTRACT = @PAX_TAR_EXTRACT@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+RANLIB = @RANLIB@
+RELEASE_INFO = @RELEASE_INFO@
+RESOLVES = @RESOLVES@
+SDL = @SDL@
+SDL_GENERATE = @SDL_GENERATE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TAR = @TAR@
+THREAD_SAFE = @THREAD_SAFE@
+VERSION = @VERSION@
+#
+VERSION_INFO = @VERSION_INFO@
+XMLTO = @XMLTO@
+ZIPTESTS = @ZIPTESTS@
+ZLIB_INCL = @ZLIB_INCL@
+ZLIB_LDIR = @ZLIB_LDIR@
+ZLIB_VERSION = @ZLIB_VERSION@
+ZZIPLIB_LDFLAGS = @ZZIPLIB_LDFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+aclocaldir = @aclocaldir@
+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@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgconfig_libdir = @pkgconfig_libdir@
+pkgconfig_libfile = @pkgconfig_libfile@
+
+# ----------------------------------------------------------------------
+pkgconfigdir = $(libdir)/pkgconfig
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = 1.4 foreign
+AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2
+DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir)
+lib_LTLIBRARIES = libzzipwrap.la
+zzipdir = ${includedir}/zzip
+zzip_HEADERS = $(libzzipwrap_la_headers)
+#
+libzzipwrap_la_SOURCES = \
+ wrap.c
+
+libzzipwrap_la_headers = \
+ wrap.h
+
+libzzipwrap_la_LDFLAGS = @ZZIPLIB_LDFLAGS@ $(RELEASE_INFO) $(VERSION_INFO) \
+ $(THREAD_SAFE)
+
+libzzipwrap_la_LIBADD = ../zzip/libzzip.la @RESOLVES@ -lz
+WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt
+EXTRA_DIST =
+CLEANFILES = $(WCC10_CLEAN) *.pc *.omf
+zzipwrap_LDFLAGS = @ZZIPLIB_LDFLAGS@
+zzipwrap_LDADD = libzzipwrap.la @RESOLVES@ ../zzip/libzzip.la -lz
+pkgconfig_HEADERS = zzipwrap.pc
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign zzipwrap/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign zzipwrap/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+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}; \
+ }
+
+libzzipwrap.la: $(libzzipwrap_la_OBJECTS) $(libzzipwrap_la_DEPENDENCIES) $(EXTRA_libzzipwrap_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libzzipwrap_la_LINK) -rpath $(libdir) $(libzzipwrap_la_OBJECTS) $(libzzipwrap_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
+
+zzipwrap$(EXEEXT): $(zzipwrap_OBJECTS) $(zzipwrap_DEPENDENCIES) $(EXTRA_zzipwrap_DEPENDENCIES)
+ @rm -f zzipwrap$(EXEEXT)
+ $(AM_V_CCLD)$(zzipwrap_LINK) $(zzipwrap_OBJECTS) $(zzipwrap_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wrap.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zzipwrap.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 $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-pkgconfigHEADERS: $(pkgconfig_HEADERS)
+ @$(NORMAL_INSTALL)
+ @list='$(pkgconfig_HEADERS)'; 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_HEADER) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+ done
+
+uninstall-pkgconfigHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconfig_HEADERS)'; 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-zzipHEADERS: $(zzip_HEADERS)
+ @$(NORMAL_INSTALL)
+ @list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(zzipdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(zzipdir)" || 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)$(zzipdir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(zzipdir)" || exit $$?; \
+ done
+
+uninstall-zzipHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(zzipdir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(zzipdir)"; 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:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+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 -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pkgconfigHEADERS install-zzipHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgconfigHEADERS \
+ uninstall-zzipHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS \
+ cscopelist-am ctags ctags-am distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-libLTLIBRARIES \
+ install-man install-pdf install-pdf-am \
+ install-pkgconfigHEADERS install-ps install-ps-am \
+ install-strip install-zzipHEADERS 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-pkgconfigHEADERS uninstall-zzipHEADERS
+
+.PRECIOUS: Makefile
+
+
+../zzip/libzzip.la : @top_srcdir@/zzip/*.c
+ (cd ../zzip && $(MAKE) `basename $@`)
+
+zzipwrap.pc : Makefile
+ @ echo "prefix=$(prefix)" >$@
+ @ echo "libdir=$(libdir)" >>$@
+ @ echo "includedir=$(includedir)" >>$@
+ @ echo " " >>$@
+ @ echo "Name: zzipwrap" >>$@
+ @ echo "Version: $(VERSION)" >>$@
+ @ echo "Description: Callback Wrappers for ZZipLib" >>$@
+ echo 'Requires: zziplib' >>$@
+ echo 'Libs: -L$${libdir} -lzzipwrap' >>$@
+ echo 'Cflags: -I$${includedir}' >>$@
+
+# 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/Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.c b/Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.c
new file mode 100644
index 00000000000..2bea0c39e5b
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.c
@@ -0,0 +1,223 @@
+
+/* Wrapper interface for zziplib's file IO functions.
+ *
+ * -- In memory-access IO function --
+ * Provides default fileio functions open/read/lseek/close and functions
+ * that enable blocked, memory buffered IO.
+ *
+ * (c) A. Schiffler, aschiffler@home.com
+ * Released under same license as zziplib (LGPL), Oct 2001
+ *
+ * modified 2002 to use new plugin_io interface by Guido Draheim
+ */
+
+#include <zzip/conf.h>
+#include <zzip/plugin.h>
+/* #incl <zzip/wrap.h> */
+#include "wrap.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+/* Some globals that we use for operation */
+
+static int zzip_memory_blocksize=0;
+static zzipwrap_pfn_t zzip_memory_callback=NULL;
+static void *zzip_memory_callbackdata=NULL;
+static char *zzip_memory_buffer=NULL;
+static int zzip_memory_bufferblock=0;
+static int zzip_memory_fd=-1;
+static int zzip_memory_pos=0;
+static int zzip_memory_size=0;
+
+/* at the moment, we do not export the five handlers of zzip_memry plugin_io */
+#define ZZIP_memory static
+
+ZZIP_memory void zzip_memory_reset(void)
+{
+ zzip_memory_buffer=NULL;
+ zzip_memory_bufferblock=0;
+ zzip_memory_pos=0;
+ zzip_memory_size=0;
+ zzip_memory_fd=-1;
+}
+
+ZZIP_memory int zzip_memory_read(int fd, char *buf, size_t count)
+{
+ int requested_block;
+ int transfer_start;
+ int transfer_bytes;
+ int bytes_read;
+ int bytes_to_write;
+ int bytes_written;
+
+ /* Check file descriptor */
+ if (fd!=zzip_memory_fd) {
+ return(-1);
+ }
+
+ if ((int)count<0)
+ return -1;
+
+ /* Work out how many bytes we have to read based */
+ /* on filepos and requested buffersize. */
+ bytes_to_write=zzip_memory_size-zzip_memory_pos;
+ if (bytes_to_write>=(int)count) {
+ bytes_to_write=(int)count;
+ }
+
+ /* Read/transfer loop */
+ bytes_written=0;
+ while (bytes_to_write>0) {
+ /* Check which block we are reading from */
+ requested_block=zzip_memory_pos/zzip_memory_blocksize;
+ /* Check if we have this block available */
+ if (zzip_memory_bufferblock!=requested_block) {
+ /* Read this block */
+ lseek(fd,requested_block*zzip_memory_blocksize,SEEK_SET);
+ bytes_read=read(fd,zzip_memory_buffer,zzip_memory_blocksize);
+ /* Clear unused bytes */
+ if ((bytes_read>=0) && (bytes_read<zzip_memory_blocksize)) {
+ memset(&zzip_memory_buffer[bytes_read],0,zzip_memory_blocksize-bytes_read);
+ }
+ /* Set current block pos */
+ zzip_memory_bufferblock=requested_block;
+ /* Process buffer if callback is set */
+ if (zzip_memory_callback) {
+ zzip_memory_callback(zzip_memory_buffer,zzip_memory_blocksize,zzip_memory_callbackdata);
+ }
+ } else {
+ bytes_read=zzip_memory_blocksize;
+ }
+ /* Check if we have read any data */
+ if (bytes_read > 0) {
+ /* Copy data to output buffer */
+ transfer_start=zzip_memory_pos-zzip_memory_bufferblock*zzip_memory_blocksize;
+ transfer_bytes=zzip_memory_blocksize-transfer_start;
+ if (transfer_bytes>bytes_to_write) {
+ transfer_bytes=bytes_to_write;
+ }
+ memcpy (&buf[bytes_written], &zzip_memory_buffer[transfer_start],transfer_bytes);
+ zzip_memory_pos += transfer_bytes;
+ bytes_written += transfer_bytes;
+ bytes_to_write -= transfer_bytes;
+ } else {
+ /* Exit on error during read */
+ bytes_to_write=0;
+ }
+ }
+ return(bytes_written);
+}
+
+ZZIP_memory int zzip_memory_open(const char *pathname, int flags)
+{
+ int fd;
+ struct stat stat_buffer;
+
+ /* Deallocate any memory buffer laying around */
+ if (zzip_memory_buffer) {
+ free(zzip_memory_buffer);
+ }
+ /* Reset variables */
+ zzip_memory_reset();
+ /* Open file */
+ fd=open(pathname, flags);
+ if (fd<0) {
+ return(-1);
+ } else {
+ /* Get filesize */
+ if (fstat(fd, &stat_buffer)<0) {
+ return(-1);
+ }
+ if (stat_buffer.st_size<1) {
+ return(-1);
+ }
+ /* Store filesize */
+ zzip_memory_size = stat_buffer.st_size;
+ /* Allocate readbuffer */
+ zzip_memory_buffer = malloc(zzip_memory_blocksize);
+ /* Invalidate buffer block */
+ zzip_memory_bufferblock = -1;
+ /* Store file descriptor */
+ zzip_memory_fd=fd;
+ /* Return file descriptor */
+ return(fd);
+ }
+}
+
+ZZIP_memory int zzip_memory_close(int fd)
+{
+ /* Check file descriptor */
+ if (fd!=zzip_memory_fd) {
+ return(-1);
+ }
+ /* Clear any memory buffer that might be laying around */
+ if (zzip_memory_buffer) {
+ free(zzip_memory_buffer);
+ }
+ /* Reset variables */
+ zzip_memory_reset();
+ /* Close file */
+ return(close(fd));
+}
+
+ZZIP_memory off_t zzip_memory_lseek(int fildes, off_t offset, int whence)
+{
+ /* Check file descriptor */
+ if (fildes!=zzip_memory_fd) {
+ return(-1);
+ }
+ /* Change position pointer */
+ switch (whence) {
+ case SEEK_SET:
+ zzip_memory_pos=offset;
+ break;
+ case SEEK_CUR:
+ zzip_memory_pos += offset;
+ break;
+ case SEEK_END:
+ zzip_memory_pos = zzip_memory_size-1;
+ break;
+ }
+ /* Limit position to the last byte of the file */
+ if (zzip_memory_pos>(zzip_memory_size-1)) {
+ zzip_memory_pos=zzip_memory_size-1;
+ }
+ /* Return current position */
+ return(zzip_memory_pos);
+}
+
+/* -------- Control wrapper usage */
+
+
+zzip_plugin_io_t
+zzipwrap_use_memory_io(int blocksize,
+ zzipwrap_pfn_t callback, void *callbackdata)
+{
+ static const struct zzip_plugin_io zzip_memory_io =
+ {
+ (void *) zzip_memory_open,
+ (void *) zzip_memory_close,
+ (void *) zzip_memory_read,
+ (void *) zzip_memory_lseek,
+ (void *) zzip_filesize,
+ 0
+ };
+
+ /* Store blocksize and block-processing callback data */
+
+ zzip_memory_blocksize = blocksize;
+ zzip_memory_callback = callback;
+ zzip_memory_callbackdata = callbackdata;
+
+ return (zzip_plugin_io_t) &zzip_memory_io;
+}
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.h b/Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.h
new file mode 100644
index 00000000000..e8f5c8e5c5c
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.h
@@ -0,0 +1,36 @@
+/*
+ * Author:
+ * Andreas Schiffler <aschiffler@appwares.com>
+ *
+ * Copyright (c) 2001 Andreas Schiffler
+ * All rights reserved,
+ * usage allowed under the restrictions of the
+ * Lesser GNU General Public License
+ */
+
+#ifndef _ZZIPWRAP_H
+#define _ZZIPWRAP_H
+
+#include <zzip/zzip.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * toggle alternate read routine and set callback and callback data
+ * return: a plugin_io pointer to be used
+ * with => zzip_opendir_ext_io or => zzip_open_ext_io and cousins
+ */
+typedef void (*zzipwrap_pfn_t)(void* mem, int blocksize, void* privatedata);
+_zzip_export
+zzip_plugin_io_t
+zzipwrap_use_memory_io(int blocksize, zzipwrap_pfn_t callback, void *callbackdata);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ZZIPWRAP_H */
+
diff --git a/Build/source/libs/zziplib/zziplib-src/zzipwrap/zzipwrap.c b/Build/source/libs/zziplib/zziplib-src/zzipwrap/zzipwrap.c
new file mode 100644
index 00000000000..447ce23f5b4
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-src/zzipwrap/zzipwrap.c
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2000,2001 Guido Draheim <guidod@gmx.de>
+ * Use freely under the restrictions of the ZLIB license.
+ *
+ * Modified by Andreas Schiffler, 2001, for the zzipwrap feature
+ * Modified by Guido Draheim in 2002 for the plugin_io feature
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h> /* exit */
+
+#include <zzip/zzip.h>
+/* #incl <zzip/wrap.h> */
+#include "wrap.h"
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+static const char usage[] =
+{
+ "zzipwrap <dir>.. \n"
+ " - prints a content table to stdout, but the dir can also be a zip-arch."
+ "\n"
+ " To show the contents of a zip-archive named 'test.zip', you may write \n"
+ " zzipwrap test \n"
+};
+
+/* This is a demo block callback routine that has access to the buffer */
+/* that was just read BEFORE it is used by zziplib. */
+static void demo_block_callback (void *buffer, int buffersize, void *data)
+{
+ fprintf (stderr,
+ "demo_block_callback( buffer-pointer=%p"
+ " buffer-size=%i data='%s' )\n",
+ buffer,buffersize,(char*)data);
+}
+
+int
+main (int argc, char ** argv)
+{
+ zzip_plugin_io_t io;
+ int argn;
+
+ if (argc <= 1)
+ {
+ printf (usage);
+ exit(0);
+ }
+
+ /* Enable blocked (32 bytes) memory buffered IO routines with a */
+ /* demo callback routine. */
+ io = zzipwrap_use_memory_io(32, demo_block_callback,
+ (void*) "Some callback data");
+ if (! io)
+ {
+ fprintf(stderr, "could not initialize memory-io");
+ return 1;
+ }
+
+ for (argn=1; argn < argc; argn++)
+ {
+ ZZIP_DIR * dir;
+ ZZIP_DIRENT * d;
+
+ dir = zzip_opendir_ext_io(argv[argn], 0, 0, io);
+ if (! dir)
+ {
+ fprintf (stderr, "did not open %s:", argv[argn]);
+ perror(argv[argn]);
+ continue;
+ }
+
+ if (argc > 2) printf ("%s:\n", argv[argn]);
+
+ /* read each dir entry and show one line of info per file */
+ while ((d = zzip_readdir (dir)))
+ {
+ /* orignalsize / compression-type / compression-ratio / filename */
+ if (d->st_size > 999999)
+ {
+ printf ("%5dK %-9s %2d%% %s\n",
+ d->st_size>>10,
+ zzip_compr_str(d->d_compr),
+ 100 - (d->d_csize|1)/((d->st_size/100)|1),
+ d->d_name);
+ }else{
+ printf ("%6d %-9s %2d%% %s\n",
+ d->st_size,
+ zzip_compr_str(d->d_compr),
+ 100 - (d->d_csize|1)*100/(d->st_size|1),
+ d->d_name);
+ }
+ }
+
+ zzip_closedir(dir);
+ }
+
+ return 0;
+}
+
diff --git a/Build/source/libs/zziplib/zziplib.test b/Build/source/libs/zziplib/zziplib.test
new file mode 100755
index 00000000000..2db34e40428
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib.test
@@ -0,0 +1,14 @@
+#! /bin/sh -vx
+# $Id$
+# Copyright 2017 Karl Berry <tex-live@tug.org>
+# Copyright 2010 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+rm -rf test
+mkdir test
+cp $srcdir/$ZZIPLIB_TREE/test/test.zip test
+
+(cd test && ../unzzip test.zip || exit 1) || exit 1
+
+diff $srcdir/$ZZIPLIB_TREE/README test/README || exit 1
+